繁体   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