3

This seems a famous issue. But I could not find a brief answer from Google. I have many clients connect to a Tomcat server through a Apache proxy server. Sometimes, I see this error on localhost log of tomcat. I want to know what are possible reasons. At which point, the connection was "reset"? I have a limited access to the enviroment, so I couldn't use tools to check the connections.

java.net.SocketException: Connection reset
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:96)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
        at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:740)
        at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
        at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349)
        at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:764)
        at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
        at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:573)
        at org.apache.coyote.Response.doWrite(Response.java:560)
        at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:353)
        at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
        at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:293)
        at org.apache.catalina.connector.OutputBuffer.writeByte(OutputBuffer.java:399)
        at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:77)
        at com.caucho.hessian.io.HessianOutput.printString(HessianOutput.java:898)
        at com.caucho.hessian.io.HessianOutput.writeString(HessianOutput.java:583)
        at com.caucho.hessian.io.JavaSerializer$StringFieldSerializer.serialize(JavaSerializer.java:412)
        at com.caucho.hessian.io.JavaSerializer.writeObject10(JavaSerializer.java:241)
        at com.caucho.hessian.io.JavaSerializer.writeObject(JavaSerializer.java:221)
        at com.caucho.hessian.io.HessianOutput.writeObject(HessianOutput.java:317)
        at com.caucho.hessian.io.ArraySerializer.writeObject(ArraySerializer.java:69)
        at com.caucho.hessian.io.HessianOutput.writeObject(HessianOutput.java:317)
        at com.caucho.hessian.io.JavaSerializer$FieldSerializer.serialize(JavaSerializer.java:315)
        at com.caucho.hessian.io.JavaSerializer.writeObject10(JavaSerializer.java:241)
        at com.caucho.hessian.io.JavaSerializer.writeObject(JavaSerializer.java:221)
        at com.caucho.hessian.io.ThrowableSerializer.writeObject(ThrowableSerializer.java:69)
        at com.caucho.hessian.io.HessianOutput.writeObject(HessianOutput.java:317)
        at com.caucho.hessian.io.HessianOutput.writeFault(HessianOutput.java:297)
        at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:190)
        at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:109)
        at org.springframework.remoting.caucho.Hessian2SkeletonInvoker.invoke(Hessian2SkeletonInvoker.java:94)
        at org.springframework.remoting.caucho.HessianExporter.invoke(HessianExporter.java:142)
        at org.springframework.remoting.caucho.HessianServiceExporter.handleRequest(HessianServiceExporter.java:70)
        at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        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:198)
        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)

Thanks

1
  • Could be just the connection getting dropped by a router or network problem. If so, it's kind of expected that that will happen from time to time. Commented Apr 19, 2011 at 7:11

1 Answer 1

1

It just means that you are writing to a connection that has already been closed by the other end. Browsers do this all the time: the user navigated away from the page before it loaded completely. Don't worry about it.

Sign up to request clarification or add additional context in comments.

4 Comments

In this case, the client called to server through Hessian. And I am quite sure that the client didn't close the connection. But I don't understand what happen when the connection made through Apache.
@Loc: the peer has certainly closed the connection. That's exactly what this message means. Why is another question.
I imagine that there are 3 nodes: the client, Apache and Tomcat. Could the peer here be Apache?
The peer is whatever you're connected to, by definition.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.