ventanas ventana una título titulo personalizar fondo diseño como color centrar cambiar barra java jax-ws webservice-client

java - ventana - JAXWS: cómo cambiar la dirección del punto final



jinternalframe sin barra de titulo (4)

Esta pregunta ya tiene una respuesta aquí:

¿Cómo puedo cambiar dinámicamente la dirección que está utilizando mi cliente JAXWS? Este cliente fue generado por wsimport.


No estoy seguro de cómo hacerlo si usa wsimport. Tuve el mismo problema, así que usé Intellij IDEA (versión 9) para crear un código de cliente para mí. Proporcionó un constructor de punto final de servicio que toma en la url wsdl.


Puede lograr eso usando la interfaz BindingProvider.

Punto final personalizado JAX-WS

/** * The following snippets shows how to set a custom endpoint for a JAX-WS generated WebClient on runtime */ // Get the service and the port SampleService service = new SampleService(); Sample port = service.getESamplePort(); // Use the BindingProvider''s context to set the endpoint BindingProvider bp = (BindingProvider)port; bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://www.aviramsegal.com/ws/sample"); /* Optional credentials */ bp.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "user"); bp.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password"); port.callSampleMethod();


Resolvió el problema usando Apache CXF.

¡Con solo dos líneas de código! Aquí está el fragmento:

URL url_wsdl = new URL("http://myserver/myservice?wsdl"); Service service = Service.create(url_wsdl, new QName("http://myaddress...", "ServiceName")); return service.getPort(MyJAXWSPortClass.class);


Soy nuevo en la integración de PayPal, no estoy seguro acerca de la API Adaptive Payment. Pero tenemos el privilegio de verificar si un ID de correo electrónico específico tiene una cuenta en PayPal o no usa el método GetVerifiedStatus .

Utilice la siguiente URL de sandbox wsdl para verificar el correo electrónico

URL: https://svcs.sandbox.paypal.com/AdaptiveAccounts?wsdl

La respuesta será como a continuación

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header/> <soapenv:Body> <ns2:GetVerifiedStatusResponse xmlns:ns2="http://svcs.paypal.com/types/aa"> <responseEnvelope> <timestamp>2015-07-20T23:42:46.661-07:00</timestamp> <ack>Success</ack> <correlationId>5cea9a8575ab9</correlationId> <build>17345626</build> </responseEnvelope> <accountStatus>UNVERIFIED</accountStatus> <countryCode>IN</countryCode> <userInfo> <emailAddress>[email protected]</emailAddress> <accountType>PERSONAL</accountType> <accountId>6KD7EVWM2E2AQW</accountId> <name> <salutation/> <firstName>anand</firstName> <middleName/> <lastName>anand</lastName> <suffix/> </name> <businessName/> </userInfo> </ns2:GetVerifiedStatusResponse> </soapenv:Body> </soapenv:Envelope>

Nota: al crear stub, no olvide configurar el punto final como se muestra a continuación. si no estamos estableciendo esto, no podemos obtener el resultado esperado.

String endpointURL = "https://svcs.sandbox.paypal.com/AdaptiveAccounts/GetVerifiedStatus";

utilice el método a continuación para agregar punto final

private static void addEndPoint(AdaptiveAccountsPortType port, String endpointURL) { BindingProvider bp = (BindingProvider)port; bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL); /*List hchain = bp.getBinding().getHandlerChain(); if (hchain == null) { hchain = new ArrayList(); } hchain.add(new HTTPUserAgentHandler()); bp.getBinding().setHandlerChain(hchain);*/ }