I am currently migrating a web app from Tomcat 7.0.73 to 8.5.15. An
embedded Tomcat is used on development systems.
The web-inf/lib folder of the application contains a jar with a
SAXParserFactory implementation. This SAXParserFactory is now used with
TC 8.5 by the WebXmlParser in order to parse the web.xml (and fails
unfortunately). The ServiceLoader finds the jar because the
ParallelWebappClassLoader is used for the lookup.
TC 7.0.73 uses the sun.misc.Launcher$AppClassLoader and does therefore
not use the jar under web-inf\lib. It creates the webXml Digester in the
init() phase of the stanrardContext. TC 8.5 does this in the
startInternal() phase where the ParallelWebappClassLoader is
instantiated and bound to the current thread.
Specifying "javax.xml.parsers.SAXParserFactory" as VM param solves the
issue of course.
My question:
Is this behaviour expected?
Should Tomcat use libraries of the web app for the startup of a context,
here for web-xml parsing?
Regards,
Michael
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org