cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aki Yoshida (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-4942) XMLStreamException outbound message
Date Thu, 25 Apr 2013 14:18:16 GMT

    [ https://issues.apache.org/jira/browse/CXF-4942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13641844#comment-13641844
] 

Aki Yoshida commented on CXF-4942:
----------------------------------

I think your interceptor should sit behind StaxOutInterceptor and get the XMLStreamWriter
content instead of directly touching the InputStream content. This has probably something
to do with the issue. BareOutInterceptor isn't in WRITE, so it's not really determined where
it is sitting in that phase. If something else already touches the XMLStreamWriter, your interceptor
will probably end up with the bad sequencing of stax events.

Other than that, I don't know how this can happen.

Could you change the position and compare the result?
thanks.
aki



                
> XMLStreamException outbound message
> -----------------------------------
>
>                 Key: CXF-4942
>                 URL: https://issues.apache.org/jira/browse/CXF-4942
>             Project: CXF
>          Issue Type: Bug
>          Components: Soap Binding
>    Affects Versions: 2.7.0
>         Environment: cxf 2.7.0
> rehl 6
> tomcat 7
>            Reporter: Juan Carlos Román
>            Priority: Critical
>              Labels: XMLStreamException
>         Attachments: gtechService.wsdl, sample messages.xml
>
>
> Hi,
> We build a webservice using CXF (2.7.0) that basically works with messages with a CDATA
attribute...
> Recently we review the system's log and we encountered the following stacktrace:
> {code:xml}
> 2013-03-12 12:49:09,445 banking-api [1] INFO [com.pagosonline.ppp4.banking.api.webservices.gtech.impl.GTechServiceImpl]
- rawResponse: <pagoResponse>
>    <peticionId>3769927</peticionId>
>    <codigoRespuesta>0000</codigoRespuesta>
>    <codigoConvenio>3</codigoConvenio>
>    <referenciaPago>3460120</referenciaPago>
>    <valorFactura>00000000010928000</valorFactura>
>    <fechaEfectiva>2013/03/12</fechaEfectiva>
>    <numeroAutorizacion>15694</numeroAutorizacion>
> </pagoResponse>
> 2013-03-12 12:49:09,445 banking-api [1] INFO [com.pagosonline.ppp4.banking.api.webservices.interceptors.CDataXMLStreamWriter]
- WritingCData<pagoResponse>
>    <peticionId>3769927</peticionId>
>    <codigoRespuesta>0000</codigoRespuesta>
>    <codigoConvenio>3</codigoConvenio>
>    <referenciaPago>3460120</referenciaPago>
>    <valorFactura>00000000010928000</valorFactura>
>    <fechaEfectiva>2013/03/12</fechaEfectiva>
>    <numeroAutorizacion>15694</numeroAutorizacion>
> </pagoResponse>
> 2013-03-12 12:49:09,447 banking-api [1] WARNING [org.apache.cxf.phase.PhaseInterceptorChain]
- Interceptor for {http://impl.gtech.webservices.api.banking.ppp4.pagosonline.com/}gtechService#{http://pagosonline.com}pagar
has thrown exception, unwinding now; Caused by: org.apache.cxf.interceptor.Fault: Could not
send Message.
> 	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> 	at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:77)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> 	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
> 	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:238)
> 	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:222)
> 	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:202)
> 	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
> 	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:239)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:159)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:215)
> 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1359)
> 	at org.openspaces.pu.container.jee.stats.RequestStatisticsFilter.doFilter(RequestStatisticsFilter.java:58)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330)
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
> 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941)
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
> 	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
> 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
> 	at org.eclipse.jetty.server.Server.handle(Server.java:349)
> 	at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
> 	at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:936)
> 	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801)
> 	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224)
> 	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
> 	at java.lang.Thread.run(Thread.java:662)
> Caused by: org.eclipse.jetty.io.EofException
> 	at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:921)
> 	at org.eclipse.jetty.http.HttpGenerator.complete(HttpGenerator.java:814)
> 	at org.eclipse.jetty.server.HttpConnection.commitResponse(HttpConnection.java:572)
> 	at org.eclipse.jetty.server.HttpConnection$Output.close(HttpConnection.java:993)
> 	at org.apache.cxf.transport.http.AbstractHTTPDestination$WrappedOutputStream.close(AbstractHTTPDestination.java:725)
> 	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
> 	at org.apache.cxf.transport.http.AbstractHTTPDestination$BackChannelConduit.close(AbstractHTTPDestination.java:655)
> 	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 	... 40 more
> Caused by: java.nio.channels.ClosedChannelException
> 	at sun.nio.ch.SocketChannelImpl.ensureWriteOpen(SocketChannelImpl.java:135)
> 	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:357)
> 	at java.nio.channels.SocketChannel.write(SocketChannel.java:360)
> 	at org.eclipse.jetty.io.nio.ChannelEndPoint.gatheringFlush(ChannelEndPoint.java:354)
> 	at org.eclipse.jetty.io.nio.ChannelEndPoint.flush(ChannelEndPoint.java:292)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.flush(SelectChannelEndPoint.java:300)
> 	at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:848)
> 	... 47 more
> 2013-03-12 12:49:09,448 banking-api [1] WARNING [org.apache.cxf.phase.PhaseInterceptorChain]
- Interceptor for {http://impl.gtech.webservices.api.banking.ppp4.pagosonline.com/}gtechService#{http://pagosonline.com}pagar
has thrown exception, unwinding now; Caused by: org.apache.cxf.binding.soap.SoapFault: Error
writing to XMLStreamWriter.
> 	at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:288)
> 	at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:270)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> 	at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:112)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:331)
> 	at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:77)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
> 	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
> 	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:238)
> 	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:222)
> 	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:202)
> 	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
> 	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:239)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:159)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:215)
> 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1359)
> 	at org.openspaces.pu.container.jee.stats.RequestStatisticsFilter.doFilter(RequestStatisticsFilter.java:58)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330)
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
> 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941)
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
> 	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
> 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
> 	at org.eclipse.jetty.server.Server.handle(Server.java:349)
> 	at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
> 	at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:936)
> 	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801)
> 	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224)
> 	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
> 	at java.lang.Thread.run(Thread.java:662)
> Caused by: javax.xml.stream.XMLStreamException: No open start element, when trying to
write end element
> 	at com.ctc.wstx.sw.BaseStreamWriter.throwOutputError(BaseStreamWriter.java:1522)
> 	at com.ctc.wstx.sw.BaseStreamWriter.reportNwfStructure(BaseStreamWriter.java:1551)
> 	at com.ctc.wstx.sw.BaseNsStreamWriter.doWriteEndTag(BaseNsStreamWriter.java:648)
> 	at com.ctc.wstx.sw.BaseNsStreamWriter.writeEndElement(BaseNsStreamWriter.java:280)
> 	at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor$SoapOutEndingInterceptor.handleMessage(SoapOutInterceptor.java:279)
> 	... 43 more
> {code}
> This message caught our attention:
> {code:java}
> Caused by: javax.xml.stream.XMLStreamException: No open start element, when trying to
write end element
> {code}
> (The response message don't have any special char)
> But after investigating we didn't found anything related... :(
> You have any idea about this behavior ? 
> Thanks in advance,
> --
> Juan

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message