我创建了一个端口池(网络服务客户端),因为在每次请求时即时创建客户端导致 bottleneck
现在我注意到网络服务客户端持有对请求和响应的引用...
这正常吗……?
不幸的是,这个 web 服务的有效负载非常大,即使一段时间不使用,池也会保留对一些不再使用的响应的引用...增加堆 ..
有没有办法在收到响应后清理这些引用?
更新:使用 Apache CXF 客户端我没有这个问题,但是 pb。仍然对 weblogic 客户端开放..
最佳答案
@Cris:虽然我没有广泛研究 weblogic web 服务,但上面的问题很奇怪。你可以试试这个: 您在链接列表中有池端口...将 web 服务调用的调用提交到单独的线程,一旦线程完成(web 服务调用完成),所有线程本地对象都必须被垃圾收集。您需要 java profiler 的帮助来找出谁在 web 服务调用后持有引用。如果您使用 Dispatch 接口(interface),您可以通过 BindingProvider 接口(interface)打印出请求上下文和响应上下文 Map 对象以了解更多信息。
关于java - Weblogic web 服务客户端。(干净的引用资料),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6882528/