2010-12-17 63 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