0 Replies Latest reply on Mar 7, 2014 8:08 AM by Walther Hautermann

    Soap header validation problem

    Walther Hautermann Newbie



      I'm trying to deploy a war with JBoss Developer Studio 7.1.0 to a JBoss AEP 6.2.0.GA.


      This web app has been tested on a Tomcat 7.0.47 first, where it worked perfectly. The web app is a kind of ESB.


      When I deployed it on JBoss EAP, I firstly had an issue of xml parsing. The xml to parse is the initial configuration of the web app loaded at the web app start up. This one was "resolved" by adding a comment line at a specific position in the xml configuration file.


      Now I'm facing a bigger issue.

      The web app is accepting SOAP requests, does a schema validation of the requests (header and body) and then apply some xslt transformations to the requests before transferring the request to the real web services on the backend.

      The problem happens during the header validation. At the first header child there's a schema error (no matter which line is the first one). An attribute is not allowed in the element. If I remove the header validation from the code, everything works well even the body schema validation.


      The exact same thing is correctly validated on Tomcat 7.0.47.


      The difference I found through debugging session is the schema class used to validate the requests (maybe not the only one).

      Tomcat is using a com.sun.org.apache.xerces.internal.jaxp.validation.SimpleXMLSchema, as JBoss EAP is using a org.apache.xerces.jaxp.validation.SimpleXMLSchema.

      The one in Tomcat is the JDK 1.7.0_51 default one and the one from JBoss is a JBoss custom one.


      I tried to exclude the modules javax.api, javax.validation.api and javax.xml.jaxp-provider one at a time from the class path through the file jboss-deployment-structure.xml. No changes, the issue is still there.


      How can I configure JBoss EAP to use the JDK default implementation in place of its custom one?


      Any other suggestions are welcome as well.