便携式 JAX-WS 客户端

10

我部署了一个JAX-WS服务并使用wsimport生成客户端代码。 因为我在本地主机上运行wsimport,所以我得到的客户端代码绑定在“localhost”地址上。

但是我想在其他访问我的部署服务的计算机上重用那些客户端代码,这些计算机通过公共IP y.y.y.y访问我的服务。如何动态使用生成的客户端代码来访问我的服务(服务的IP可能会变化…)?

2个回答

13

这在JAX-WS的FAQ中有详细说明:

问:如何动态更改 Web Service 请求的地址?

((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "..."); 

6
当然。看一下JBoss示例。这里是相关的代码片段:
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://your.wsdl.location");

通常情况下,WSDL是由系统生成的,因此Web服务提供者会将相关的URL插入到WSDL中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接