"便携式"JAX-WS客户端

rnd*_*gen 10 wsdl dynamic jax-ws endpoints wsimport

我部署了一个JAX-WS服务并使用wsimport生成客户端代码.因为我在localhost上运行wsimport,所以我在"localhost"地址上使用binind获取了客户端代码.

但我想在其他使用公共IP yyyy访问我部署的服务的计算机上重用这些客户端代码.如何动态使用这些(一次)生成的客户端代码来访问我的服务.(服务的IP可能会改变......)

Pas*_*ent 13

这在JAX-WS 的FAQ中有所介绍:

问:如何针对请求动态更改Web服务地址?

((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "..."); 
Run Code Online (Sandbox Code Playgroud)


dz.*_*dz. 6

当然.看看JBoss的例子.这是相关的代码段:

BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://your.wsdl.location");
Run Code Online (Sandbox Code Playgroud)

通常会生成WSDL,因此WS提供程序会将相关的URL插入到WSDL中.