我部署了一个JAX-WS服务并使用wsimport生成客户端代码。 因为我在本地主机上运行wsimport,所以我得到的客户端代码绑定在“localhost”地址上。
但是我想在其他访问我的部署服务的计算机上重用那些客户端代码,这些计算机通过公共IP y.y.y.y访问我的服务。如何动态使用生成的客户端代码来访问我的服务(服务的IP可能会变化…)?
这在JAX-WS的FAQ中有详细说明:
问:如何动态更改 Web Service 请求的地址?
((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "...");
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://your.wsdl.location");