2009-11-03 17 views
10

Implementé un servicio JAX-WS y uso wsimport para generar código de cliente. Como ejecuto wsimport en localhost, obtuve el código de cliente con binind en la dirección "localhost".Cliente JAX-WS "portátil"

Pero quiero reutilizar esos códigos de cliente en otras computadoras que acceden a mi servicio implementado con una IP pública y.y.y.y. ¿Cómo puedo usar dinámicamente esos códigos cliente (una vez) generados para acceder a mi servicio? (La ip del servicio puede cambiar ...)

Respuesta

13

Esto se trata en la FAQ de JAX-WS:

P. ¿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, "..."); 
6

Sure. Eche un vistazo al JBoss example. He aquí el fragmento de código relevante:

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.