【发布时间】:2011-05-21 21:39:35
【问题描述】:
用例是应用程序(在 JBoss 5 上运行)必须在非常有限的带宽上运行。目前,每次我们进行 Web 服务调用时,我们都会请求 wsdl 并使用 JAX-WS 重新创建存根。每次创建存根时,都会重新下载 wsdl 和模式。理想情况下,wsdl 永远不会被下载,因为我们已经有了模式的副本,但即使缓存也可以工作。如果缓存是可序列化的,则加分!
是否可以缓存 JAX-WS 存根/端口?
【问题讨论】:
用例是应用程序(在 JBoss 5 上运行)必须在非常有限的带宽上运行。目前,每次我们进行 Web 服务调用时,我们都会请求 wsdl 并使用 JAX-WS 重新创建存根。每次创建存根时,都会重新下载 wsdl 和模式。理想情况下,wsdl 永远不会被下载,因为我们已经有了模式的副本,但即使缓存也可以工作。如果缓存是可序列化的,则加分!
是否可以缓存 JAX-WS 存根/端口?
【问题讨论】:
目前找到的最佳答案:
告诉服务查看本地 wsdl: JAX-WS client : what's the correct path to access the local WSDL?
动态更改端点: JAX-WS Loading WSDL from jar
我没有看到缓存的方法,但是可以按照 Metro 上此页面上的说明使用本地副本:Developing client application with locally packaged WSDL
(在 SO 问题上找到:How to cache a WSDL with Java-WS)
【讨论】:
我认为我们可以使用 org.apache.commons.pool2.impl.GenericObject 库缓存存根。
请参见下面的链接。
【讨论】: