I've had this problem many times before. You found the solution: remove
the local version from WEB-INF/lib. This is totally a class loading
issue and you should not have xercesImpl.jar there if the server already
provides it.
Jason X. Jia wrote:
Hi,
I had an interesting issue with struts 1.2.9 on AS400. Briefly, it
throws an SAXNotRecognizedException when initializing the
ActionServlet. Struts 1.2.9 uses commons-digester (1.6) to parse the
struts-config.xml. And for whatever the reason, the original
application put a xercesImpl.jar (2.6.2) under WEB-INF/lib.
The exception was thrown from the following statement of method
XercesParser.configureXerces():
factoty.setFeature(XERCES_DYNAMIC, true);
commons-digester check the parser version to set these feature.
However, its getVersion() method looks dangerous.
At line 106, 107 of XercesParser.class of commons-digester.jar (1.6),
the getVersion() method is expected to return a string like "Xerces-J
2.X.0", but actually in our case, it returns "XML4J 4.0.13".
Then the next substring() return "0" instead of "2.6". It 's lucky
that "Xerces-J" and "XML4J 4." both have length 8.
The reason is on WAS 5.1, it actually used the xercesImpl.jar under
plugins/org.apache.xerces-4.0.13, not the one under WEB-INF/lib.
We end up removing the xercesImpl.jar under WEB-INF/lib, it works.
Any comment?
Regards,
Jason
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]