You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Claudio Weiler <cl...@gmail.com> on 2015/04/09 00:29:51 UTC

External xml problem on Tomcat 6.0.41

Hi,

I use a Debian Squeeze distro, with official Tomcat releases. Recently I
update to Tomcat 6.0.41 and a (not modified) application stopped to load.

I dig and found that on Tomcat 6.0.40 the context attribute
"xmlBlockExternal" was changed default value from false to true, then I
modified this attribute in context.xml.

Now, the application do not work, with the exception:
------------------------
java.lang.IllegalStateException: Illegal class loader binding
        at
org.apache.naming.resources.DirContextURLStreamHandler.get(DirContextURLStreamHandler.java:223)
        at
org.apache.naming.resources.DirContextURLStreamHandler.openConnection(DirContextURLStreamHandler.java:88)
        at java.net.URL.openConnection(URL.java:945)
        at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:651)
        at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1315)
        at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1252)
        at com.sun.org.apache.xerces.internal.impl.
*XMLDocumentFragmentScannerImpl.scanEntityReference*
(XMLDocumentFragmentScannerImpl.java:1906)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3032)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
        at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
        at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
        at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
        at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
        at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
        at
com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:235)
        at
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:284)
        at
org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:146)
        at
org.apache.jasper.compiler.JspConfig.processWebDotXml(JspConfig.java:103)
        at org.apache.jasper.compiler.JspConfig.init(JspConfig.java:238)
        at
org.apache.jasper.compiler.JspConfig.findJspProperty(JspConfig.java:294)
        at
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:112)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
        at
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
        at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
        at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at
com.googlecode.psiprobe.Tomcat60AgentValve.invoke(Tomcat60AgentValve.java:30)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
        at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:662)
----------------------

This stacktrace leads me to "fragment scanner" that is exactly what broke
my app on first place. What I use is a xml injection in web.xml as follow:
<!DOCTYPE root [ <!ENTITY certisign SYSTEM "certisign_sdk.xml">]>
and:
&certisign;

So, I tested to remove this reference and place the fragment inside web.xml
and this solved the exception and the application back to work.

I searched more infos but none so far. So my questions:

1. What additional modification on Tomcat could be the reason to a working
config stops to work?

2. There is any other context attribute (that I miss) to be defined that
will solve this problem?

3. Do you have any other clues to help me?


Thanks!!!