小编Dan*_*iel的帖子

Tomcat 关闭 websocket 连接并出现错误

对于客户,我们使用Tomcat 8.0.29构建了一个 HTML5 websocket 应用程序。如果我们从我们的网络或我们的家庭网络启动应用程序,一切正常。但是如果客户从他的网络启动应用程序,一段时间后 websocket 会因错误而停止。这可能会在 5 或 20 分钟后发生。

我们已经在使用和不使用 SSL 以及两台不同的服务器上对其进行了测试。只有在客户网络中,连接会因错误而中断。

我们还使用Tomcat 中包含的 websocket echo 示例进行了测试。和我们的 websocket 一样。一段时间后,websocket 因错误而停止。但前提是我们从客户网络启动应用程序。

当 echo 示例因错误而停止时,以下消息将写入 server.log

08-Dec-2015 10:20:37.757 SEVERE [http-apr-8081-exec-2] org.apache.tomcat.websocket.pojo.PojoEndpointBase.onError No error handling configured for [websocket.echo.EchoAnnotation] and the following error occurred
 java.io.IOException: Unexpected error [730,054] reading data from the APR/native socket [1,639,490,672] with wrapper [org.apache.tomcat.util.net.AprEndpoint$AprSocketWrapper@231e01e4:1639490672].<br/>
    at org.apache.coyote.http11.upgrade.AprServletInputStream.doRead(AprServletInputStream.java:133)<br/>
    at org.apache.coyote.http11.upgrade.AbstractServletInputStream.read(AbstractServletInputStream.java:124)<br/>
    at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:51)<br/>
    at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsReadListener.onDataAvailable(WsHttpUpgradeHandler.java:183)<br/>
    at org.apache.coyote.http11.upgrade.AbstractServletInputStream.onDataAvailable(AbstractServletInputStream.java:198)<br/>
    at org.apache.coyote.http11.upgrade.AbstractProcessor.upgradeDispatch(AbstractProcessor.java:96)<br/>
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:669)<br/>
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2500)<br/>
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2489)<br/>
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)<br/> …
Run Code Online (Sandbox Code Playgroud)

java tomcat websocket tomcat8 java-websocket

6
推荐指数
1
解决办法
3071
查看次数

标签 统计

java ×1

java-websocket ×1

tomcat ×1

tomcat8 ×1

websocket ×1