Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat上带超时的Web服务_Java_Web Services_Tomcat_Timeout - Fatal编程技术网

Java Tomcat上带超时的Web服务

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

我有一个应用程序开关运行约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(...);

我建议把这两个问题分成两个问题,你应该认真考虑你的应用程序内存泄漏问题。这正是问题所在。谢谢!