You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2002/10/16 18:41:11 UTC

DO NOT REPLY [Bug 13700] New: - XML parser goes Internet when parsing a TLD

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13700>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13700

XML parser goes Internet when parsing a TLD

           Summary: XML parser goes Internet when parsing a TLD
           Product: Tomcat 4
           Version: 4.1.10
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Catalina
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: rainer.klute@epost.de


When Tomcat parses a tag library descriptor the XML parser (or at least Crimson
in my case) seems to try to load the DTD specified by the system identifier in
the DOCTYPE statement. The latter looks like this:

<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

Here the system identifier is http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd
and Crimson tries to fetch the DTD via the Internet. This a) is unnecessary
since the web container should already know about certain DTDs and b) is not
possible if the web container isn't connected to the Internet).

For me that means that I cannot run my web application under Tomcat in a network
that is separated from the Internet. The exception I get is the following:

javax.servlet.ServletException: Exception processing TLD META-INF/misc.tld in
JAR at resource path /WEB-INF/lib/misc-taglib.jar
        at
org.apache.catalina.startup.ContextConfig.tldScanJar(ContextConfig.java:934)
        at org.apache.catalina.startup.ContextConfig.tldScan(ContextConfig.java:868)
        at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:647)
        at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:243)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3493)
        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579)
        at
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:257)
        at org.apache.catalina.core.StandardHost.install(StandardHost.java:772)
        at
org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:569)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:411)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:879)
        at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:368)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
        at org.apache.catalina.core.StandardService.start(StandardService.java:497)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:2191)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:510)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
----- Root Cause -----
java.net.ConnectException: Connection timed out
        at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3182)
        at
org.apache.crimson.parser.Parser2.externalParameterEntity(Parser2.java:2870)
        at org.apache.crimson.parser.Parser2.maybeDoctypeDecl(Parser2.java:1167)
        at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:489)
        at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
        at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
        at org.apache.commons.digester.Digester.parse(Digester.java:1514)
        at
org.apache.catalina.startup.ContextConfig.tldScanStream(ContextConfig.java:977)
        at
org.apache.catalina.startup.ContextConfig.tldScanJar(ContextConfig.java:921)
        at org.apache.catalina.startup.ContextConfig.tldScan(ContextConfig.java:868)
        at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:647)
        at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:243)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3493)
        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579)
        at
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:257)
        at org.apache.catalina.core.StandardHost.install(StandardHost.java:772)
        at
org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:569)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:411)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:879)
        at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:368)
        at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
        at org.apache.catalina.core.StandardService.start(StandardService.java:497)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:2191)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:510)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

Is there a workaround? Do other XML parsers behave the same? If not, how can I
configure Tomcat to use another XML parser?

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>