Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Solution for secure-processing org.xml.sax.SAXNotRecognizedException causing java.lang.IllegalStateException running inside Tomcat

Tags:

java

xml

I'm facing this exception when receiving an Xml and trying to parse it. The code responsible for that is well tested when running as an standalone application. However I'm now integrating it in Tomcat.

The stack trace is:

java.lang.IllegalStateException: org.xml.sax.SAXNotRecognizedException: http://javax.xml.XMLConstants/feature/secure-processing
    at com.sun.xml.internal.bind.v2.util.XmlFactory.createParserFactory(XmlFactory.java:121)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.getXMLReader(UnmarshallerImpl.java:139)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:204)

Digging around I found this, so maybe the solution is to change the options Tomcat sets.

So the question is:

  • Which is the problem's root?
  • Best way to solve it?
  • Is a good approach to change Tomcat options? how is this done?

Update

This happens when running it with Java 8, reverting to Java 7 works ok.

like image 903
Javier Mr Avatar asked May 30 '14 10:05

Javier Mr


3 Answers

I had faced similar issue, this issue occurs when there is big difference in versions of xerces jar and xercesImpl jar. To solve this, I used xerces-2.9.0 and xercesImpl-2.9.1 and the issue gone.

like image 180
user2974606 Avatar answered Nov 18 '22 09:11

user2974606


I know this is an old question. But just updating it if it is of any help to others.. We had a similar issue recently while upgradig to java 8 with JBOSS 3.2.6. The cause of the issue was an old xercesImpl.jar. We upgraded to xercesImol-2.9.1.jar and the issue was resolved.

like image 37
Nayan Sonthalia Avatar answered Nov 18 '22 10:11

Nayan Sonthalia


Well, this worked for me: Added below to my tomcat configuration arguments: -Djavax.xml.parsers.SAXParserFactory="com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"

like image 29
Aakash Patel Avatar answered Nov 18 '22 10:11

Aakash Patel