簡體   English   中英

Tomcat 上的 Web 服務超時

[英]Web-Service on Tomcat with Timeout

我有一個應用程序運行大約 30 分鍾。 一些輸入數據。 它還具有測試數據,因此應用程序大約需要 30 秒。

該應用程序應該在網絡服務中可用。 我使用了 CXF 和 tomcat。 使用測試數據一切正常。 對於真實數據,大約 1 分鍾后會出現超時:SocketTimeoutException

我查看了所有超時參數(server.xml,所有 web.xml),但沒有幫助。

我的應用程序非常消耗內存。 我將此 vm 值添加到服務器 -Xmx1600m。 沒有,我得到一個 OutOfMemoryException

知道我還能嘗試什么嗎? 我可以在關卡會話中設置內存嗎? 謝謝!

免責聲明:我從未與CXF合作過

這篇博客在這里描述了與你的超時非常相似的情況。

給出的示例代碼表明使用帶有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(...);

您的問題是 outOfMemory,您能否嘗試將參數 -Xmx1600m 更改為 -Xmx2048m 或更多。 它進入文件/etc/init.d/tomcat

### BEGIN INIT INFO
# Provides: tomcat8
# Required-Start: $network $syslog
# Required-Stop: $network $syslog
# Default-Start:
# Default-Stop:
# Description: Tomcat 8
# Short-Description: start and stop tomcat
### END INIT INFO

## Source function library.
#. /etc/rc.d/init.d/functions
#export JAVA_HOME=/usr/java/default
export JAVA_HOME=/opt/jdk1.8.0_201
export JAVA_OPTS="-Dfile.encoding=UTF-8 \
  -Dnet.sf.ehcache.skipUpdateCheck=true \
  -XX:+UseConcMarkSweepGC \
  -XX:+CMSClassUnloadingEnabled \
  -XX:+UseParNewGC \
  -XX:MaxPermSize=256m \
  -Xms512m -Xmx2048m"
export PATH=$JAVA_HOME/bin:$PATH
TOMCAT_HOME=/opt/tomcat-latest
TOMCAT_USER=root
SHUTDOWN_WAIT=20

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM