2010-12-17 58 views
0

我有一个应用程序女巫运行约30分钟。与一些输入数据。它也有测试数据,所以应用程序需要大约30秒。超时Tomcat上的Web服务

该应用程序应该可以在web服务中使用。我用CXF和tomcat。所有的测试数据都可以正常工作。与真实数据有后约1分钟超时:一个SocketTimeoutException

我看了一下所有的超时参数(server.xml中,所有的web.xml),但没有帮助。

我的应用程序非常耗费内存。我将这个vm值添加到服务器-Xmx1600m。没有,我得到一个OutOfMemoryException

任何想法我仍然可以尝试?我可以在关卡会话中设置记忆吗? 谢谢!

+0

我建议拆分这成 – 2010-12-17 15:55:57

+0

你应该认真考虑剖析内存泄漏您的应用程序的两个问题两个问题。 – dimitrisli 2010-12-17 15:59:27

回答

2

免责声明:我从来没有与CXF

此博客here作用似乎被描述非常相似的情况,你的工作超时。

给出它们的示例代码指示使用HTTPConduitHTTPCLientPolicy可以解决问题。

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(...); 
+0

这正是问题。非常感谢! – myborobudur 2010-12-20 10:31:08