我已经使用apache Axis2 1.6.2生成了web服务客户端。每次请求时,都会创建新的连接,并且在成功完成请求/出错时,连接不会关闭。这会对将来的请求造成连接超时问题。我已经通过netstat命令进行了检查,所有的连接都处于CLOSE_WAIT状态,并且没有释放连接。
apache axis 2客户端不会自动释放所有连接。我已经找到了两种方法,但不知道这是否有效,或者它是否会产生连锁反应。一个是设置AUTO_RELEASE_CONNECTION_PROPERTY,第二个是REUSE_HTTP_CLIENT
我已经使用apache axis2通过myeclipse生成了客户端。
发布于 2014-03-06 14:08:47
我在上一个项目中遇到过类似的问题&我使用Spring的WS托管bean解决了这个问题。出现这个问题,是因为您每次都创建port对象,每次都会创建http连接,并且没有正确关闭。
请参阅以下代码,
<bean id="viewBillInfo"
class="org.springframework.remoting.jaxws.JaxWsPortProxyFactoryBean"
p:serviceInterface="com.javaplex.CustomerInfoInterface"
p:wsdlDocumentUrl="http://10.0.5.50:8080/portal/CustomerInfoPort?wsdl"
p:namespaceUri="http://ws.customergen.com/" p:serviceName="CustomerInfo"
p:portName="CustomerInfoPort">这是一篇完整的文章,介绍了如何设置基于spring的bean,从而获得最佳性能。
http://www.javaplex.com/spring-jax-ws-client-for-best-performance/
https://stackoverflow.com/questions/21502653
复制相似问题