[jboss-dev-forums] [JBoss Web Services Development] - SOAP Message validation now enabled by default?
Paul Robinson
do-not-reply at jboss.com
Fri Sep 28 06:03:30 EDT 2012
Paul Robinson [https://community.jboss.org/people/paul.robinson] created the discussion
"SOAP Message validation now enabled by default?"
To view the discussion, visit: https://community.jboss.org/message/762174#762174
--------------------------------------------------------------
Hello,
Since AS7 upgraded from CXF '2.4.8-patch-01' to '2.4.9' ( https://github.com/jbossas/jboss-as/commit/0a1e626a5c4bf52a8c75e0cd27f15c4c08dfc24d https://github.com/jbossas/jboss-as/commit/0a1e626a5c4bf52a8c75e0cd27f15c4c08dfc24d) we have been getting the following 'unexpected element' error:
18:34:17,669 WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (http-/127.0.0.1:8080-3) Interceptor for {http://schemas.arjuna.com/ws/2005/10/wsarjtx}TerminationParticipantSer
vice#{http://schemas.arjuna.com/ws/2005/10/wsarjtx}FaultOperation has thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Unexpected element {http://schemas.xmlsoa
p.org/soap/envelope/}Fault found. Expected {http://schemas.arjuna.com/ws/2005/10/wsarjtx}Fault.
at org.apache.cxf.interceptor.DocLiteralInInterceptor.validatePart(DocLiteralInInterceptor.java:259) [cxf-rt-core-2.4.9.jar:2.4.9]
at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:201) [cxf-rt-core-2.4.9.jar:2.4.9]
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) [cxf-api-2.4.9.jar:2.4.9]
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) [cxf-rt-core-2.4.9.jar:2.4.9]
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:207) [cxf-rt-transports-http-2.4.9.jar:2.4.9]
at org.jboss.wsf.stack.cxf.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:91)
at org.jboss.wsf.stack.cxf.transport.ServletHelper.callRequestHandler(ServletHelper.java:169)
at org.jboss.wsf.stack.cxf.CXFServletExt.invoke(CXFServletExt.java:87)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:185) [cxf-rt-transports-http-2.4.9.jar:2.4.9]
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:108) [cxf-rt-transports-http-2.4.9.jar:2.4.9]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-servlet-api_3.0_spec-1.0.1.Final.jar:1.0.1.Final]
at org.jboss.wsf.stack.cxf.CXFServletExt.service(CXFServletExt.java:135)
at org.jboss.wsf.spi.deployment.WSFServlet.service(WSFServlet.java:140)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.1.Final.jar:1.0.1.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
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:372)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:679)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:931)
at java.lang.Thread.run(Thread.java:680) [classes.jar:1.6.0_35]
This error occurs because our message type doesn't match that required by the WSDL:
<soap:Body>
<ns2:Fault xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://schemas.arjuna.com/ws/2005/10/wsarjtx">
<faultcode>ns3:TransactionRolledBack</faultcode>
<faultstring>ARJUNA043178: Transaction rolled back</faultstring>
</ns2:Fault>
</soap:Body>
Notice that the message is of type "ns2:Fault", rather than "ns3:Fault". The wsdl wants a '{http://schemas.arjuna.com/ws/2005/10/wsarjtx}Fault'.
So we have two problems here. The first is the problem that we have been sending malformed messages for some time. The second is that since the upgrade to CXF 2.4.9, this issue was not tolerated. In the long term we need to fix the message, but that may not be possible in the short term as we may not be able to get this fix into the release that needs it.
Do you know what has changed in CXF to cause this issue and do you know of a work-around?
For the original issue see here: https://issues.jboss.org/browse/JBTM-1275 https://issues.jboss.org/browse/JBTM-1275
Thanks,
Paul.
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/762174#762174]
Start a new discussion in JBoss Web Services Development at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2047]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-dev-forums/attachments/20120928/541dd213/attachment.html
More information about the jboss-dev-forums
mailing list