6 Replies Latest reply on Mar 10, 2009 1:24 PM by peterj

    Struts + 3.2.4/5-Exception Processing ErrorPage 404

    persabi

      Hi,

      I have a struts 1.1 based app that specifies error pages in web.xml like so:

      <error-page>
       <error-code>400</error-code>
       <location>/error/error400.jsp</location>
      </error-page>
      
      <error-page>
       <error-code>403</error-code>
       <location>/error/error403.jsp</location>
      </error-page>
      
      <error-page>
       <error-code>404</error-code>
       <location>/error/error404.jsp</location>
      </error-page>
      


      nothing unusual.

      In Jboss 3.2.3 with embedded Tomcat, the EAR file deploys OK and I have no problems navigating web pages.

      In Jboss 3.2.4 and 3.2.5 w/ embedded Tomcat, the EAR also deploys without error, however every page I navigate to displays the following error dump in the server.log. Regardless of the error log output, this doesn't cause any harm (I believe) and it even displays the error404.jsp page upon a 404 error!


      15:16:08,640 ERROR [Engine] org.apache.catalina.core.StandardHostValve@1c9e4d2: Exception Processing ErrorPage[errorCode=404, location=/error/error404.jsp]
      ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error
      at org.apache.coyote.tomcat5.OutputBuffer.doFlush(OutputBuffer.java:331)
      at org.apache.coyote.tomcat5.OutputBuffer.flush(OutputBuffer.java:297)
      at org.apache.coyote.tomcat5.CoyoteResponse.flushBuffer(CoyoteResponse.java:537)
      at org.apache.coyote.tomcat5.CoyoteResponseFacade.flushBuffer(CoyoteResponseFacade.java:238)
      at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:303)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:147)
      at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
      at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
      at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
      at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
      at java.lang.Thread.run(Thread.java:534)


      Removing the error page 404 references eliminates this error. However I don't see the difference between 404 and the other error definitions.

      I did read on Tomcat's mail archives, a suggestion to increase the verbosity level of Tomcat Logger to WARNING. Looking in deploy/jbossweb-tomcat50.sar/server.xml, I see it is already set to WARNING.

      Other posts suggest that it's a problem with the client browser due to the
      socket write error
      as the browser is prematurely disconnecting from Tomcat.

      I have seen here that others have had no problems migrating their struts web apps from 3.2.3 to 3.2.4, so does anyone have any insight?

      Regards,
      Vance