cliente JAX-WS “portátil”
Pregunta
desplegué un JAX-WS servicio y el uso wsimport para generar código de cliente. Debido a que corro wsimport en localhost, me dieron el código de cliente con binind en la dirección "localhost".
Pero quiero volver a utilizar los códigos de cliente en otros equipos que acceden a mi servicio se instala con un y.y.y.y. IP pública ¿Cómo se puede utilizar de forma dinámica los códigos de cliente (una vez) generado para acceder a mi servicio. (La ip de servicio puede cambiar ...)
Solución
Esto se trata en el FAQ de JAX-WS:
Q. ¿Cómo puedo cambiar la dirección del Servicio Web de forma dinámica para una solicitud?
((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "...");
Otros consejos
Claro. Echar un vistazo a la JBoss ejemplo . He aquí el fragmento de código correspondiente:
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://your.wsdl.location");
Por lo general, se genera el WSDL y therfore el proveedor WS inserta las direcciones URL pertinentes en el WSDL.