“便携式”JAX-WS 客户端
Posted
技术标签:
【中文标题】“便携式”JAX-WS 客户端【英文标题】:"Portable" JAX-WS client 【发布时间】:2010-12-12 16:47:37 【问题描述】:我部署了一个 JAX-WS 服务并使用 wsimport 生成客户端代码。 因为我在 localhost 上运行 wsimport,所以我在“localhost”地址上获得了带有 binind 的客户端代码。
但我想在其他计算机上重用这些客户端代码,这些计算机使用公共 IP y.y.y.y 访问我部署的服务。如何动态使用那些(一次)生成的客户端代码来访问我的服务。 (服务的ip可能会改变...)
【问题讨论】:
【参考方案1】:这在 JAX-WS 的 FAQ 中有介绍:
问。如何为请求动态更改 Web 服务地址?
((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "...");
【讨论】:
【参考方案2】:当然。看看JBoss example。下面是相关代码sn-p:
BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://your.wsdl.location");
通常会生成 WSDL,然后 WS 提供者将相关的 URL 插入 WSDL。
【讨论】:
以上是关于“便携式”JAX-WS 客户端的主要内容,如果未能解决你的问题,请参考以下文章
为 JAX-RPC Web 服务生成 JAX-WS 客户端存根?