Java Tomcat上带超时的Web服务
我有一个应用程序开关运行约30分钟。与一些输入数据。它还有测试数据,所以应用程序大约需要30秒 应用程序应该在Web服务中可用。我使用了CXF和tomcat。所有这些都可以很好地处理testdata。对于实际数据,大约1分钟后会出现超时:SocketTimeoutException 我查看了所有超时参数(server.xml,all web.xml),但没有帮助 我的应用程序非常消耗内存。我将这个vm值添加到服务器-Xmx1600m。如果没有,我会得到一个OutOfMemoryException 知道我还能尝试什么吗?我可以将内存设置为会话级别吗?Java Tomcat上带超时的Web服务,java,web-services,tomcat,timeout,Java,Web Services,Tomcat,Timeout,我有一个应用程序开关运行约30分钟。与一些输入数据。它还有测试数据,所以应用程序大约需要30秒 应用程序应该在Web服务中可用。我使用了CXF和tomcat。所有这些都可以很好地处理testdata。对于实际数据,大约1分钟后会出现超时:SocketTimeoutException 我查看了所有超时参数(server.xml,all web.xml),但没有帮助 我的应用程序非常消耗内存。我将这个vm值添加到服务器-Xmx1600m。如果没有,我会得到一个OutOfMemoryException
谢谢 免责声明:我从未使用过CXF 这个博客似乎描述了一个与你的超时非常相似的情况 给出的示例代码表明使用
httpconductor
和HTTPCLientPolicy
可以解决此问题
MyWebService service = new MyWebService();
MyWebServicePortType client = service.MyWebServicePort();
Client cl = ClientProxy.getClient(client);
HTTPConduit http = (HTTPConduit) cl.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(0);
httpClientPolicy.setReceiveTimeout(0);
http.setClient(httpClientPolicy);
client.doSomething(...);
我建议把这两个问题分成两个问题,你应该认真考虑你的应用程序内存泄漏问题。这正是问题所在。谢谢!