【发布时间】:2011-01-28 18:50:41
【问题描述】:
我有使用 NetBeans IDE 自动生成的 JAX-WS 样式 Web 服务客户端。
生成的代理工厂(扩展 javax.xml.ws.Service)将代理创建委托给各种 Service.getPort 方法。我正在维护的应用程序实例化工厂并在每次调用目标服务时获取代理。
已经证明重复创建新代理工厂实例的成本很高,因为每次实例化都会重新检索提供给工厂构造函数的 WSDL 文档,即 HTTP URI。
我们通过缓存 WSDL 成功地提高了性能。但这对我们的维护和包装影响很大。
我想探索缓存代理工厂本身的适用性。是否安全,例如,在同一个 JVM 上执行并针对同一个 Web 服务的两个不同的客户端类可以安全地使用同一个工厂来获取不同的代理对象(或共享的、可重入的代理对象)?
我无法从 JAX-WS 规范或 javax.xml.ws API 文档中找到指导。我不清楚工厂代理的多样性。拥有 Service.getPort 而不是 Service.createPort 并不能激发信心。
【问题讨论】:
标签: java web-services jakarta-ee jax-ws