ava.net.SocketTimeoutException: Read timed out


at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.read(SocketInputStream.java:129)

at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:716)

at org.apache.coyote.http11.InternalInputBuffer$InputStreamInputBuffer.doRead(InternalInputBuffer.java:746)

at org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:116)

at org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.java:675)

at org.apache.coyote.Request.doRead(Request.java:428)

at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:298)

at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:372)

at org.apache.catalina.connector.InputBuffer.readByte(InputBuffer.java:307)

at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:105)

at com.caucho.burlap.io.BurlapInput.read(BurlapInput.java:1527)

at com.caucho.burlap.io.BurlapInput.skipWhitespace(BurlapInput.java:1493)

at com.caucho.burlap.io.BurlapInput.parseTag(BurlapInput.java:1450)

at com.caucho.burlap.io.BurlapInput.expectTag(BurlapInput.java:1432)

at com.caucho.burlap.io.BurlapInput.startCall(BurlapInput.java:215)

at com.caucho.burlap.server.BurlapSkeleton.invoke(BurlapSkeleton.java:170)

at net.buffalo.spring.BuffaloServiceExporter.handleRequest(BuffaloServiceExporter.java:102)

at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)

at org.springframework.web.servlet.FrameworkServlet.serviceWrapper(FrameworkServlet.java:386)

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:355)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:172)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.xcesium.util.servlet.ServletFilter.doFilter(ServletFilter.java:28)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

at java.lang.Thread.run(Thread.java:619)


这个是在socket编程时设置了超时,客户端没有在限定的时间内将数据发送的服务器,服务器为了保证服务性能,认定那个连接已经死掉了,就出现上述异常。



解决办法:


在存根业务调用代码中进行设置,添加:

_operationClient.getOptions().setTimeOutInMilliSeconds(600000L);

_operationClient表示一个客户端对象。


这个设置很不合理,但是没办法了,暂时先解决了问题再研究去。