10 Replies Latest reply on Apr 2, 2009 9:26 PM by tinny4u

    Large web service request, connection prematurely closed

      I wasn't sure where to post this web service question....

      (Is there a better place to post this?)

      I have a Grails application that I have deployed to JBoss AS 4.2.2.GA

      (Ref: http://www.jboss.org/index.html?module=bb&op=viewtopic&t=152946)

      This application has some web services (using XFire). One of these web services receives large SOAP pay loads (1MB+). When I try and do one of these large requests I get the following exception.

      org.codehaus.xfire.XFireRuntimeException: Could not read XML stream.. Nested exception is com.ctc.wstx.exc.WstxEOFException: Unexpected end of input block in end tag
      at [row,col {unknown-source}]: [1,1441792]
      com.ctc.wstx.exc.WstxEOFException: Unexpected end of input block in end tag
      at [row,col {unknown-source}]: [1,1441792]

      etc.....

      The interesting thing is that this application works just fine when deployed on the Jetty Servlet container.

      I wonder if there is some sort of tcp / http buffer setting in JBoss AS that I can manipulate? Or something like that........?

      Any suggestions?

      Thanks in advance

        • 1. Re: Large web service request, connection prematurely closed

          In addition...

          If I do a much smaller request to this same web service it works just fine under JBoss.

          • 2. Re: Large web service request, connection prematurely closed
            peterj

            It does sound like a buffer configuration issue, the question is which buffer and where to configure it. Please post the full stack trace - that might give some clues.

            • 3. Re: Large web service request, connection prematurely closed

              Here is the full exception logging, what do you think? thanks

              2009-04-02 19:58:25,670 INFO [STDOUT] [1788637] handler.DefaultFaultHandler Fault occurred!
              org.codehaus.xfire.XFireRuntimeException: Could not read XML stream.. Nested exception is com.ctc.wstx.exc.WstxEOFException: Unexpected end of input block in end tag
              at [row,col {unknown-source}]: [1,1441792]
              com.ctc.wstx.exc.WstxEOFException: Unexpected end of input block in end tag
              at [row,col {unknown-source}]: [1,1441792]
              at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOB(StreamScanner.java:675)
              at com.ctc.wstx.sr.StreamScanner.loadMoreFromCurrent(StreamScanner.java:1029)
              at com.ctc.wstx.sr.StreamScanner.getNextCharFromCurrent(StreamScanner.java:786)
              at com.ctc.wstx.sr.BasicStreamReader.readEndElem(BasicStreamReader.java:3204)
              at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2830)
              at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
              at com.ctc.wstx.sr.BasicStreamReader.getElementText(BasicStreamReader.java:669)
              at org.codehaus.xfire.util.stax.DepthXMLStreamReader.getElementText(DepthXMLStreamReader.java:86)
              at org.codehaus.xfire.util.stax.DepthXMLStreamReader.getElementText(DepthXMLStreamReader.java:86)
              at org.grails.xfire.aegis.stax.ElementReader.getValue(ElementReader.java:122)
              at org.grails.xfire.aegis.type.basic.StringType.readObject(StringType.java:21)
              at org.grails.xfire.aegis.type.basic.BeanType.readObject(BeanType.java:159)
              at org.grails.xfire.aegis.type.basic.ArrayType.readCollection(ArrayType.java:80)
              at org.grails.xfire.aegis.type.basic.ArrayType.readObject(ArrayType.java:48)
              at org.grails.xfire.aegis.type.basic.BeanType.readObject(BeanType.java:159)
              at org.grails.xfire.aegis.AegisBindingProvider.readParameter(AegisBindingProvider.java:169)
              at org.codehaus.xfire.service.binding.AbstractBinding.read(AbstractBinding.java:206)
              at org.codehaus.xfire.service.binding.WrappedBinding.readMessage(WrappedBinding.java:51)
              at org.codehaus.xfire.soap.handler.SoapBodyHandler.invoke(SoapBodyHandler.java:42)
              at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
              at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
              at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
              at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
              at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
              at org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
              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: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)
              at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.processFilterChain(UrlMappingsFilter.java:169)
              at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:160)
              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.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.parsePage(GrailsPageFilter.java:122)
              at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter(GrailsPageFilter.java:85)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
              at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
              at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:109)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277)
              at org.codehaus.groovy.grails.plugins.springsecurity.GrailsAuthenticationProcessingFilter.super$3$doFilterHttp(GrailsAuthenticationProcessingFilter.groovy)
              at sun.reflect.GeneratedMethodAccessor605.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
              at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:230)
              at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:912)
              at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:946)
              at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:131)
              at org.codehaus.groovy.grails.plugins.springsecurity.GrailsAuthenticationProcessingFilter.doFilterHttp(GrailsAuthenticationProcessingFilter.groovy:56)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
              at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
              at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.c
              2009-04-02 19:58:25,671 INFO [STDOUT] atalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:65)
              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.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
              at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
              at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
              at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
              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:230)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
              at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
              at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
              at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
              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:446)
              at java.lang.Thread.run(Thread.java:619)
              2009-04-02 19:58:25,674 INFO [STDOUT] [1788642] fault.FaultSender Could not send fault.
              org.codehaus.xfire.fault.XFireFault: Couldn't write message.
              at org.codehaus.xfire.soap.SoapSerializer.writeMessage(SoapSerializer.java:92)
              at org.codehaus.xfire.transport.http.HttpChannel.writeWithoutAttachments(HttpChannel.java:56)
              at org.codehaus.xfire.transport.http.XFireServletChannel.sendViaServlet(XFireServletChannel.java:87)
              at org.codehaus.xfire.transport.http.XFireServletChannel.send(XFireServletChannel.java:44)
              at org.codehaus.xfire.fault.FaultSender.invoke(FaultSender.java:37)
              at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
              at org.codehaus.xfire.handler.DefaultFaultHandler.sendFault(DefaultFaultHandler.java:88)
              at org.codehaus.xfire.handler.DefaultFaultHandler.invoke(DefaultFaultHandler.java:51)
              at org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:77)
              at org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
              at org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
              at org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
              at org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
              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: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)
              at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.processFilterChain(UrlMappingsFilter.java:169)
              at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:160)
              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.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.parsePage(GrailsPageFilter.java:122)
              at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter(GrailsPageFilter.java:85)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
              at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
              at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:109)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277)
              at org.codehaus.groovy.grails.plugins.springsecurity.GrailsAuthenticationProcessingFilter.super$3$doFilterHttp(GrailsAuthenticationProcessingFilter.groovy)
              at sun.reflect.GeneratedMethodAccessor605.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
              at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:230)
              at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:912)
              at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:946)
              at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:131)
              at org.codehaus.groovy.grails.plugins.springsecurity.GrailsAuthenticationProcessingFilter.doFilterHttp(GrailsAuthenticationProcessingFilter.groovy:56)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
              at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
              at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
              at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
              at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
              at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:65)
              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.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
              at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
              at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
              at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
              at org.apache.catalina.core.ApplicationFilterChain.in
              2009-04-02 19:58:25,674 INFO [STDOUT] ternalDoFilter(ApplicationFilterChain.java:235)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
              at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
              at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
              at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
              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:446)
              at java.lang.Thread.run(Thread.java:619)
              Caused by: com.ctc.wstx.exc.WstxIOException: null
              at com.ctc.wstx.sw.BaseStreamWriter.flush(BaseStreamWriter.java:313)
              at org.codehaus.xfire.soap.SoapSerializer.writeMessage(SoapSerializer.java:88)
              ... 95 more
              Caused by: ClientAbortException: java.net.SocketException: Connection closed by remote host
              at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:319)
              at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:288)
              at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
              at com.opensymphony.module.sitemesh.filter.RoutableServletOutputStream.flush(RoutableServletOutputStream.java:122)
              at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:124)
              at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:99)
              at com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:184)
              at com.ctc.wstx.sw.BaseStreamWriter.flush(BaseStreamWriter.java:311)
              ... 96 more
              Caused by: java.net.SocketException: Connection closed by remote host
              at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1253)
              at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:43)
              at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:737)
              at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
              at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:299)
              at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:963)
              at org.apache.coyote.Response.action(Response.java:183)
              at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:314)
              ... 103 more

              • 4. Re: Large web service request, connection prematurely closed
                peterj

                Digging through the source of Woodstox (http://woodstox.codehaus.org/) was not that helpful - apparently there is some configuration file somewhere that links the Woodstox reader with a socket.

                Does the transfer take longer than 20 seconds? If so, try increasing the connectionTimeout in server/xxx/deploy/jboss-web.deploy/server.xml.

                You can also try setting maxPostSize at the same location. See the tomcat docs for details: http://tomcat.apache.org/tomcat-5.5-doc/config/http.html (Yes, maxPostSize defaults to 2MB, but if you are sending Unicode characters then each char takes 2 bytes, thus your assumed 1MB message might actually be 1 mega-characters, or 2MBs).

                • 5. Re: Large web service request, connection prematurely closed

                  Thanks so much for that useful post. Unfortunately none of the configuration changes I made helped.

                  Here is my server.xml file. As you can see ive tried to get things going in a sort of brute force manner. Am I missing something? Thanks



                  <!--APR library loader. Documentation at /docs/apr.html -->

                  <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->


                  <!-- Use a custom version of StandardService that allows the
                  connectors to be started independent of the normal lifecycle
                  start to allow web apps to be deployed before starting the
                  connectors.
                  -->


                  <!-- A "Connector" represents an endpoint by which requests are received
                  and responses are returned. Documentation at :
                  Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
                  Java AJP Connector: /docs/config/ajp.html
                  APR (HTTP/AJP) Connector: /docs/apr.html
                  Define a non-SSL HTTP/1.1 Connector on port 8080
                  -->


                  <!-- Define a SSL HTTP/1.1 Connector on port 8443
                  This connector uses the JSSE configuration, when using APR, the
                  connector should be using the OpenSSL style configuration
                  described in the APR documentation -->




                  <!-- Define an AJP 1.3 Connector on port 8009 -->




                  <!-- The JAAS based authentication and authorization realm implementation
                  that is compatible with the jboss 3.2.x realm implementation.
                  - certificatePrincipal : the class name of the
                  org.jboss.security.auth.certs.CertificatePrincipal impl
                  used for mapping X509[] cert chains to a Princpal.
                  - allRolesMode : how to handle an auth-constraint with a role-name=*,
                  one of strict, authOnly, strictAuthOnly
                  + strict = Use the strict servlet spec interpretation which requires
                  that the user have one of the web-app/security-role/role-name
                  + authOnly = Allow any authenticated user
                  + strictAuthOnly = Allow any authenticated user only if there are no
                  web-app/security-roles
                  -->

                  <!-- A subclass of JBossSecurityMgrRealm that uses the authentication
                  behavior of JBossSecurityMgrRealm, but overrides the authorization
                  checks to use JACC permissions with the current java.security.Policy
                  to determine authorized access.
                  - allRolesMode : how to handle an auth-constraint with a role-name=*,
                  one of strict, authOnly, strictAuthOnly
                  + strict = Use the strict servlet spec interpretation which requires
                  that the user have one of the web-app/security-role/role-name
                  + authOnly = Allow any authenticated user
                  + strictAuthOnly = Allow any authenticated user only if there are no
                  web-app/security-roles

                  -->



                  <!-- Uncomment to enable request dumper. This Valve "logs interesting
                  contents from the specified Request (before processing) and the
                  corresponding Response (after processing). It is especially useful
                  in debugging problems related to headers and cookies."
                  -->
                  <!--

                  -->

                  <!-- Access logger -->
                  <!--

                  -->

                  <!-- Uncomment to enable single sign-on across web apps
                  deployed to this host. Does not provide SSO across a cluster.

                  If this valve is used, do not use the JBoss ClusteredSingleSignOn
                  valve shown below.

                  A new configuration attribute is available beginning with
                  release 4.0.4:

                  cookieDomain configures the domain to which the SSO cookie
                  will be scoped (i.e. the set of hosts to
                  which the cookie will be presented). By default
                  the cookie is scoped to "/", meaning the host
                  that presented it. Set cookieDomain to a
                  wider domain (e.g. "xyz.com") to allow an SSO
                  to span more than one hostname.
                  -->
                  <!--

                  -->

                  <!-- Uncomment to enable single sign-on across web apps
                  deployed to this host AND to all other hosts in the cluster.

                  If this valve is used, do not use the standard Tomcat SingleSignOn
                  valve shown above.

                  Valve uses a JBossCache instance to support SSO credential
                  caching and replication across the cluster. The JBossCache
                  instance must be configured separately. By default, the valve
                  shares a JBossCache with the service that supports HttpSession
                  replication. See the "jboss-web-cluster-service.xml" file in the
                  server/all/deploy directory for cache configuration details.

                  Besides the attributes supported by the standard Tomcat
                  SingleSignOn valve (see the Tomcat docs), this version also
                  supports the following attributes:

                  cookieDomain see above

                  treeCacheName JMX ObjectName of the JBossCache MBean used to
                  support credential caching and replication across
                  the cluster. If not set, the default value is
                  "jboss.cache:service=TomcatClusteringCache", the
                  standard ObjectName of the JBossCache MBean used
                  to support session replication.
                  -->
                  <!--

                  -->

                  <!-- Check for unclosed connections and transaction terminated checks
                  in servlets/jsps.

                  Important: The dependency on the CachedConnectionManager
                  in META-INF/jboss-service.xml must be uncommented, too
                  -->








                  • 6. Re: Large web service request, connection prematurely closed

                    Opps, here the real file.....



                    <!--APR library loader. Documentation at /docs/apr.html -->

                    <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->


                    <!-- Use a custom version of StandardService that allows the
                    connectors to be started independent of the normal lifecycle
                    start to allow web apps to be deployed before starting the
                    connectors.
                    -->


                    <!-- A "Connector" represents an endpoint by which requests are received
                    and responses are returned. Documentation at :
                    Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
                    Java AJP Connector: /docs/config/ajp.html
                    APR (HTTP/AJP) Connector: /docs/apr.html
                    Define a non-SSL HTTP/1.1 Connector on port 8080
                    -->


                    <!-- Define a SSL HTTP/1.1 Connector on port 8443
                    This connector uses the JSSE configuration, when using APR, the
                    connector should be using the OpenSSL style configuration
                    described in the APR documentation -->




                    <!-- Define an AJP 1.3 Connector on port 8009 -->




                    <!-- The JAAS based authentication and authorization realm implementation
                    that is compatible with the jboss 3.2.x realm implementation.
                    - certificatePrincipal : the class name of the
                    org.jboss.security.auth.certs.CertificatePrincipal impl
                    used for mapping X509[] cert chains to a Princpal.
                    - allRolesMode : how to handle an auth-constraint with a role-name=*,
                    one of strict, authOnly, strictAuthOnly
                    + strict = Use the strict servlet spec interpretation which requires
                    that the user have one of the web-app/security-role/role-name
                    + authOnly = Allow any authenticated user
                    + strictAuthOnly = Allow any authenticated user only if there are no
                    web-app/security-roles
                    -->

                    <!-- A subclass of JBossSecurityMgrRealm that uses the authentication
                    behavior of JBossSecurityMgrRealm, but overrides the authorization
                    checks to use JACC permissions with the current java.security.Policy
                    to determine authorized access.
                    - allRolesMode : how to handle an auth-constraint with a role-name=*,
                    one of strict, authOnly, strictAuthOnly
                    + strict = Use the strict servlet spec interpretation which requires
                    that the user have one of the web-app/security-role/role-name
                    + authOnly = Allow any authenticated user
                    + strictAuthOnly = Allow any authenticated user only if there are no
                    web-app/security-roles

                    -->



                    <!-- Uncomment to enable request dumper. This Valve "logs interesting
                    contents from the specified Request (before processing) and the
                    corresponding Response (after processing). It is especially useful
                    in debugging problems related to headers and cookies."
                    -->
                    <!--

                    -->

                    <!-- Access logger -->
                    <!--

                    -->

                    <!-- Uncomment to enable single sign-on across web apps
                    deployed to this host. Does not provide SSO across a cluster.

                    If this valve is used, do not use the JBoss ClusteredSingleSignOn
                    valve shown below.

                    A new configuration attribute is available beginning with
                    release 4.0.4:

                    cookieDomain configures the domain to which the SSO cookie
                    will be scoped (i.e. the set of hosts to
                    which the cookie will be presented). By default
                    the cookie is scoped to "/", meaning the host
                    that presented it. Set cookieDomain to a
                    wider domain (e.g. "xyz.com") to allow an SSO
                    to span more than one hostname.
                    -->
                    <!--

                    -->

                    <!-- Uncomment to enable single sign-on across web apps
                    deployed to this host AND to all other hosts in the cluster.

                    If this valve is used, do not use the standard Tomcat SingleSignOn
                    valve shown above.

                    Valve uses a JBossCache instance to support SSO credential
                    caching and replication across the cluster. The JBossCache
                    instance must be configured separately. By default, the valve
                    shares a JBossCache with the service that supports HttpSession
                    replication. See the "jboss-web-cluster-service.xml" file in the
                    server/all/deploy directory for cache configuration details.

                    Besides the attributes supported by the standard Tomcat
                    SingleSignOn valve (see the Tomcat docs), this version also
                    supports the following attributes:

                    cookieDomain see above

                    treeCacheName JMX ObjectName of the JBossCache MBean used to
                    support credential caching and replication across
                    the cluster. If not set, the default value is
                    "jboss.cache:service=TomcatClusteringCache", the
                    standard ObjectName of the JBossCache MBean used
                    to support session replication.
                    -->
                    <!--

                    -->

                    <!-- Check for unclosed connections and transaction terminated checks
                    in servlets/jsps.

                    Important: The dependency on the CachedConnectionManager
                    in META-INF/jboss-service.xml must be uncommented, too
                    -->








                    • 7. Re: Large web service request, connection prematurely closed

                      Arrrr the forum is chopping off my post. Here are the important parts



                      <!-- Define a SSL HTTP/1.1 Connector on port 8443
                      This connector uses the JSSE configuration, when using APR, the
                      connector should be using the OpenSSL style configuration
                      described in the APR documentation -->




                      <!-- Define an AJP 1.3 Connector on port 8009 -->

                      • 8. Re: Large web service request, connection prematurely closed

                         

                        <Connector port="8080" address="${jboss.bind.address}"
                         maxThreads="250" maxHttpHeaderSize="16384"
                         emptySessionPath="true" protocol="HTTP/1.1"
                         enableLookups="false" redirectPort="8443" acceptCount="100"
                         maxPostSize="10240"
                         bufferSize="10240"
                         socketBuffer="10240"
                         connectionTimeout="240000" disableUploadTimeout="true" />
                        
                         <!-- Define a SSL HTTP/1.1 Connector on port 8443
                         This connector uses the JSSE configuration, when using APR, the
                         connector should be using the OpenSSL style configuration
                         described in the APR documentation -->
                        
                         <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                         maxThreads="150" scheme="https" secure="true"
                         clientAuth="false" sslProtocol="TLS"
                         connectionTimeout="240000"
                         maxPostSize="10240"
                         bufferSize="10240"
                         socketBuffer="10240"
                         maxSavePostSize="10240"
                         maxHttpHeaderSize="16384"
                         disableUploadTimeout="true"
                         keystoreFile="${jboss.server.home.dir}/conf/.keystore"
                         keystorePass="fact0ring" />
                        
                        
                         <!-- Define an AJP 1.3 Connector on port 8009 -->
                         <Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3"
                         emptySessionPath="true" enableLookups="false" redirectPort="8443" />
                        
                        


                        • 9. Re: Large web service request, connection prematurely closed
                          peterj

                          All I can suggest is playing around with the settings to see if it changes anything. Beyond that, I'm stumped. Perhaps someone else has some suggestions.

                          • 10. Re: Large web service request, connection prematurely closed

                            Well it would appear that after the appropriate number of restarts it works! Not sure what I did wrong, I must not have saved the server.xml file or something... Also this server is a vmware image so maybe it is something to do with the load on the host OS?

                            Anyway I will continue to monitor the situation.

                            Thanks for your help PeterJ!!!

                            For the record here are the settings that are working for me

                             <Connector port="8080" address="${jboss.bind.address}"
                             maxThreads="250" maxHttpHeaderSize="16384"
                             emptySessionPath="true" protocol="HTTP/1.1"
                             enableLookups="false" redirectPort="8443" acceptCount="100"
                             maxPostSize="10240"
                             bufferSize="10240"
                             socketBuffer="10240"
                             connectionTimeout="240000" disableUploadTimeout="true" />
                            
                             <!-- Define a SSL HTTP/1.1 Connector on port 8443
                             This connector uses the JSSE configuration, when using APR, the
                             connector should be using the OpenSSL style configuration
                             described in the APR documentation -->
                            
                             <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                             maxThreads="150" scheme="https" secure="true"
                             clientAuth="false" sslProtocol="TLS"
                             connectionTimeout="240000"
                             maxPostSize="10240"
                             bufferSize="10240"
                             socketBuffer="10240"
                             maxSavePostSize="10240"
                             maxHttpHeaderSize="16384"
                             disableUploadTimeout="true"
                             keystoreFile="${jboss.server.home.dir}/conf/.keystore"
                             keystorePass="fact0ring" />
                            
                            
                             <!-- Define an AJP 1.3 Connector on port 8009 -->
                             <Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3"
                             emptySessionPath="true" enableLookups="false" redirectPort="8443" />