web.xml with SYSTEM ENTITY (in DTD) provoques NPE in OPENEJB loading

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

web.xml with SYSTEM ENTITY (in DTD) provoques NPE in OPENEJB loading

Maxime Thieu
Hello,

I am using OpenEJB 3.1 in Tomcat (with openejb.war).

I have webapps with web.xml containing SYSTEM ENTITY in DTD (for inclusion of xml) like this :

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
                         "http://java.sun.com/j2ee/dtds/web-app_2.3.dtd" [

<!ENTITY inclusionFile SYSTEM "file.xml" >
]>

<web-app>
&inclusionFile;

...

</web-app>

During Tomcat starting (when OpenEJB reads webapp definition), I have the following blocking error:

ERROR - Unable to load web.xml in war /test: Exception: Encountered unknown error parsing the web.xml file: jndi:/localhost/test/WEB-INF/web.xml: null

I found (with the StackTrace) that the problem is situated in JaxbJavaee class, in inner class NamespaceFilter, when resolving entity:
System entity have publicId with null value and it provoques a null pointer exception when adding it to the Set publicIds.

        public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
            Set<String> publicIds = currentPublicId.get();
            if (publicIds != null) {
                publicIds.add(publicId);
            }
            return EMPTY_INPUT_SOURCE;
        }


Is this a bug ? Is there any other way to resolve this ?

Thanks in advance,

Maxime

here is the complete StackTrace of the Error in the log :
ERROR - Unable to load web.xml in war /test: Exception: Encountered unknown error parsing the web.xml file: jndi:/localhost/test/WEB-INF/web.xml: null
org.apache.openejb.OpenEJBException: Encountered unknown error parsing the web.xml file: jndi:/localhost/test/WEB-INF/web.xml: null
        at org.apache.openejb.config.ReadDescriptors.readWebApp(ReadDescriptors.java:496)
        at org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.createWebModule(TomcatWebAppBuilder.java:609)
        at org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.loadApplication(TomcatWebAppBuilder.java:529)
        at org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.start(TomcatWebAppBuilder.java:234)
        at org.apache.openejb.tomcat.catalina.TomcatLoader.processRunningApplications(TomcatLoader.java:228)
        at org.apache.openejb.tomcat.catalina.TomcatLoader.init(TomcatLoader.java:139)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:615)
        at org.apache.openejb.loader.Embedder.init(Embedder.java:75)
        at org.apache.openejb.tomcat.loader.TomcatHook.hook(TomcatHook.java:98)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:615)
        at org.apache.openejb.tomcat.loader.TomcatEmbedder.embed(TomcatEmbedder.java:74)
        at org.apache.openejb.tomcat.loader.LoaderServlet.init(LoaderServlet.java:44)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4055)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4361)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
        at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:576)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:615)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by:
java.lang.NullPointerException
        at java.util.TreeMap.compare(TreeMap.java:1108)
        at java.util.TreeMap.put(TreeMap.java:480)
        at java.util.TreeSet.add(TreeSet.java:225)
        at org.apache.openejb.jee.JaxbJavaee$NamespaceFilter.resolveEntity(JaxbJavaee.java:120)
        at org.apache.xerces.util.EntityResolverWrapper.resolveEntity(Unknown Source)
        at org.apache.xerces.impl.XMLEntityManager.resolveEntity(Unknown Source)
        at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEntityReference(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:211)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:184)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:120)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:103)
        at org.apache.openejb.jee.JaxbJavaee.unmarshal(JaxbJavaee.java:104)
        at org.apache.openejb.config.ReadDescriptors.readWebApp(ReadDescriptors.java:488)
        ... 43 more
Reply | Threaded
Open this post in threaded view
|

Re: web.xml with SYSTEM ENTITY (in DTD) provoques NPE in OPENEJB loading

Dain Sundstrom
Is this something that works in standalone Tomcat?  If it is, where is  
the "file.xml" file located?  This is not likely to be fixed in the  
next release, so in the mean time, you'll have to unroll the entity  
reference by hand (or using some tool).

-dain

On Nov 28, 2008, at 7:53 AM, Maxime Thieu wrote:

>
> Hello,
>
> I am using OpenEJB 3.1 in Tomcat (with openejb.war).
>
> I have webapps with web.xml containing SYSTEM ENTITY in DTD (for  
> inclusion
> of xml) like this :
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web  
> Application
> 2.3//EN"
>                         "http://java.sun.com/j2ee/dtds/web- 
> app_2.3.dtd" [
>
> <!ENTITY inclusionFile SYSTEM "file.xml" >
> ]>
>
> <web-app>
> &inclusionFile;
>
> ...
>
> </web-app>
>
> During Tomcat starting (when OpenEJB reads webapp definition), I  
> have the
> following blocking error:
>
> ERROR - Unable to load web.xml in war /test: Exception: Encountered  
> unknown
> error parsing the web.xml file: jndi:/localhost/test/WEB-INF/
> web.xml: null
>
> I found (with the StackTrace) that the problem is situated in  
> JaxbJavaee
> class, in inner class NamespaceFilter, when resolving entity:
> System entity have publicId with null value and it provoques a null  
> pointer
> exception when adding it to the Set publicIds.
>
>        public InputSource resolveEntity(String publicId, String  
> systemId)
> throws SAXException, IOException {
>            Set<String> publicIds = currentPublicId.get();
>            if (publicIds != null) {
>                publicIds.add(publicId);
>            }
>            return EMPTY_INPUT_SOURCE;
>        }
>
>
> Is this a bug ? Is there any other way to resolve this ?
>
> Thanks in advance,
>
> Maxime
>
> here is the complete StackTrace of the Error in the log :
> ERROR - Unable to load web.xml in war /test: Exception: Encountered  
> unknown
> error parsing the web.xml file: jndi:/localhost/test/WEB-INF/
> web.xml: null
> org.apache.openejb.OpenEJBException: Encountered unknown error  
> parsing the
> web.xml file: jndi:/localhost/test/WEB-INF/web.xml: null
> at
> org
> .apache
> .openejb.config.ReadDescriptors.readWebApp(ReadDescriptors.java:496)
> at
> org
> .apache
> .openejb
> .tomcat
> .catalina
> .TomcatWebAppBuilder.createWebModule(TomcatWebAppBuilder.java:609)
> at
> org
> .apache
> .openejb
> .tomcat
> .catalina
> .TomcatWebAppBuilder.loadApplication(TomcatWebAppBuilder.java:529)
> at
> org
> .apache
> .openejb
> .tomcat.catalina.TomcatWebAppBuilder.start(TomcatWebAppBuilder.java:
> 234)
> at
> org
> .apache
> .openejb
> .tomcat
> .catalina.TomcatLoader.processRunningApplications(TomcatLoader.java:
> 228)
> at
> org
> .apache.openejb.tomcat.catalina.TomcatLoader.init(TomcatLoader.java:
> 139)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun
> .reflect
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
> at
> sun
> .reflect
> .DelegatingMethodAccessorImpl
> .invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:615)
> at org.apache.openejb.loader.Embedder.init(Embedder.java:75)
> at org.apache.openejb.tomcat.loader.TomcatHook.hook(TomcatHook.java:
> 98)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun
> .reflect
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
> at
> sun
> .reflect
> .DelegatingMethodAccessorImpl
> .invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:615)
> at
> org
> .apache
> .openejb.tomcat.loader.TomcatEmbedder.embed(TomcatEmbedder.java:74)
> at
> org
> .apache.openejb.tomcat.loader.LoaderServlet.init(LoaderServlet.java:
> 44)
> at
> org
> .apache
> .catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
> at  
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:
> 981)
> at
> org
> .apache
> .catalina.core.StandardContext.loadOnStartup(StandardContext.java:
> 4055)
> at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:
> 4361)
> at
> org
> .apache
> .catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
> at  
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:
> 771)
> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:
> 525)
> at
> org
> .apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:
> 626)
> at
> org
> .apache
> .catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
> at  
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
> at
> org
> .apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:
> 311)
> at
> org
> .apache
> .catalina
> .util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
> 1053)
> at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
> 1045)
> at  
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
> at  
> org.apache.catalina.core.StandardService.start(StandardService.java:
> 516)
> at  
> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:576)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun
> .reflect
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
> at
> sun
> .reflect
> .DelegatingMethodAccessorImpl
> .invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:615)
> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> Caused by:
> java.lang.NullPointerException
> at java.util.TreeMap.compare(TreeMap.java:1108)
> at java.util.TreeMap.put(TreeMap.java:480)
> at java.util.TreeSet.add(TreeSet.java:225)
> at
> org.apache.openejb.jee.JaxbJavaee
> $NamespaceFilter.resolveEntity(JaxbJavaee.java:120)
> at org.apache.xerces.util.EntityResolverWrapper.resolveEntity(Unknown
> Source)
> at org.apache.xerces.impl.XMLEntityManager.resolveEntity(Unknown  
> Source)
> at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown  
> Source)
> at
> org
> .apache
> .xerces
> .impl.XMLDocumentFragmentScannerImpl.scanEntityReference(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
> $FragmentContentDispatcher.dispatch(Unknown
> Source)
> at
> org
> .apache
> .xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> at
> com
> .sun
> .xml
> .bind
> .v2
> .runtime
> .unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:211)
> at
> com
> .sun
> .xml
> .bind
> .v2
> .runtime
> .unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:184)
> at
> javax
> .xml
> .bind
> .helpers
> .AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:120)
> at
> javax
> .xml
> .bind
> .helpers
> .AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:103)
> at org.apache.openejb.jee.JaxbJavaee.unmarshal(JaxbJavaee.java:104)
> at
> org
> .apache
> .openejb.config.ReadDescriptors.readWebApp(ReadDescriptors.java:488)
> ... 43 more
> --
> View this message in context: http://www.nabble.com/web.xml-with-SYSTEM-ENTITY-%28in-DTD%29-provoques-NPE-in-OPENEJB-loading-tp20736729p20736729.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>

Reply | Threaded
Open this post in threaded view
|

Re: web.xml with SYSTEM ENTITY (in DTD) provoques NPE in OPENEJB loading

Maxime Thieu
Yes, this configuration works well in standalone Tomcat.
The file.xml is situated in WEB-INF folder (where web.xml is situated) and contains some servlet definitions.

The fact is that OpenEJB parser does not read system entities whereas Tomcat did it.

A temporary solution for me, is to store the content of file.xml in web.xml, but it would be great if OpenEJB could read web.xml like Tomcat does.

Thanks for your response

Maxime

Dain Sundstrom wrote
Is this something that works in standalone Tomcat?  If it is, where is  
the "file.xml" file located?  This is not likely to be fixed in the  
next release, so in the mean time, you'll have to unroll the entity  
reference by hand (or using some tool).

-dain

On Nov 28, 2008, at 7:53 AM, Maxime Thieu wrote:

>
> Hello,
>
> I am using OpenEJB 3.1 in Tomcat (with openejb.war).
>
> I have webapps with web.xml containing SYSTEM ENTITY in DTD (for  
> inclusion
> of xml) like this :
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web  
> Application
> 2.3//EN"
>                         "http://java.sun.com/j2ee/dtds/web- 
> app_2.3.dtd" [
>
> <!ENTITY inclusionFile SYSTEM "file.xml" >
> ]>
>
> <web-app>
> &inclusionFile;
>
> ...
>
> </web-app>
>
> During Tomcat starting (when OpenEJB reads webapp definition), I  
> have the
> following blocking error:
>
> ERROR - Unable to load web.xml in war /test: Exception: Encountered  
> unknown
> error parsing the web.xml file: jndi:/localhost/test/WEB-INF/
> web.xml: null
>
> I found (with the StackTrace) that the problem is situated in  
> JaxbJavaee
> class, in inner class NamespaceFilter, when resolving entity:
> System entity have publicId with null value and it provoques a null  
> pointer
> exception when adding it to the Set publicIds.
>
>        public InputSource resolveEntity(String publicId, String  
> systemId)
> throws SAXException, IOException {
>            Set<String> publicIds = currentPublicId.get();
>            if (publicIds != null) {
>                publicIds.add(publicId);
>            }
>            return EMPTY_INPUT_SOURCE;
>        }
>
>
> Is this a bug ? Is there any other way to resolve this ?
>
> Thanks in advance,
>
> Maxime
>
> here is the complete StackTrace of the Error in the log :
> ERROR - Unable to load web.xml in war /test: Exception: Encountered  
> unknown
> error parsing the web.xml file: jndi:/localhost/test/WEB-INF/
> web.xml: null
> org.apache.openejb.OpenEJBException: Encountered unknown error  
> parsing the
> web.xml file: jndi:/localhost/test/WEB-INF/web.xml: null
> at
> org
> .apache
> .openejb.config.ReadDescriptors.readWebApp(ReadDescriptors.java:496)
> at
> org
> .apache
> .openejb
> .tomcat
> .catalina
> .TomcatWebAppBuilder.createWebModule(TomcatWebAppBuilder.java:609)
> at
> org
> .apache
> .openejb
> .tomcat
> .catalina
> .TomcatWebAppBuilder.loadApplication(TomcatWebAppBuilder.java:529)
> at
> org
> .apache
> .openejb
> .tomcat.catalina.TomcatWebAppBuilder.start(TomcatWebAppBuilder.java:
> 234)
> at
> org
> .apache
> .openejb
> .tomcat
> .catalina.TomcatLoader.processRunningApplications(TomcatLoader.java:
> 228)
> at
> org
> .apache.openejb.tomcat.catalina.TomcatLoader.init(TomcatLoader.java:
> 139)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun
> .reflect
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
> at
> sun
> .reflect
> .DelegatingMethodAccessorImpl
> .invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:615)
> at org.apache.openejb.loader.Embedder.init(Embedder.java:75)
> at org.apache.openejb.tomcat.loader.TomcatHook.hook(TomcatHook.java:
> 98)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun
> .reflect
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
> at
> sun
> .reflect
> .DelegatingMethodAccessorImpl
> .invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:615)
> at
> org
> .apache
> .openejb.tomcat.loader.TomcatEmbedder.embed(TomcatEmbedder.java:74)
> at
> org
> .apache.openejb.tomcat.loader.LoaderServlet.init(LoaderServlet.java:
> 44)
> at
> org
> .apache
> .catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
> at  
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:
> 981)
> at
> org
> .apache
> .catalina.core.StandardContext.loadOnStartup(StandardContext.java:
> 4055)
> at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:
> 4361)
> at
> org
> .apache
> .catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
> at  
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:
> 771)
> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:
> 525)
> at
> org
> .apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:
> 626)
> at
> org
> .apache
> .catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
> at  
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
> at
> org
> .apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:
> 311)
> at
> org
> .apache
> .catalina
> .util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
> 1053)
> at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:
> 1045)
> at  
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
> at  
> org.apache.catalina.core.StandardService.start(StandardService.java:
> 516)
> at  
> org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:576)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun
> .reflect
> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
> at
> sun
> .reflect
> .DelegatingMethodAccessorImpl
> .invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:615)
> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
> Caused by:
> java.lang.NullPointerException
> at java.util.TreeMap.compare(TreeMap.java:1108)
> at java.util.TreeMap.put(TreeMap.java:480)
> at java.util.TreeSet.add(TreeSet.java:225)
> at
> org.apache.openejb.jee.JaxbJavaee
> $NamespaceFilter.resolveEntity(JaxbJavaee.java:120)
> at org.apache.xerces.util.EntityResolverWrapper.resolveEntity(Unknown
> Source)
> at org.apache.xerces.impl.XMLEntityManager.resolveEntity(Unknown  
> Source)
> at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown  
> Source)
> at
> org
> .apache
> .xerces
> .impl.XMLDocumentFragmentScannerImpl.scanEntityReference(Unknown
> Source)
> at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
> $FragmentContentDispatcher.dispatch(Unknown
> Source)
> at
> org
> .apache
> .xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at org.xml.sax.helpers.XMLFilterImpl.parse(Unknown Source)
> at
> com
> .sun
> .xml
> .bind
> .v2
> .runtime
> .unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:211)
> at
> com
> .sun
> .xml
> .bind
> .v2
> .runtime
> .unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:184)
> at
> javax
> .xml
> .bind
> .helpers
> .AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:120)
> at
> javax
> .xml
> .bind
> .helpers
> .AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:103)
> at org.apache.openejb.jee.JaxbJavaee.unmarshal(JaxbJavaee.java:104)
> at
> org
> .apache
> .openejb.config.ReadDescriptors.readWebApp(ReadDescriptors.java:488)
> ... 43 more
> --
> View this message in context: http://www.nabble.com/web.xml-with-SYSTEM-ENTITY-%28in-DTD%29-provoques-NPE-in-OPENEJB-loading-tp20736729p20736729.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>
Reply | Threaded
Open this post in threaded view
|

Re: web.xml with SYSTEM ENTITY (in DTD) provoques NPE in OPENEJB loading

Dain Sundstrom
On Dec 4, 2008, at 1:29 AM, Maxime Thieu wrote:

>
> Yes, this configuration works well in standalone Tomcat.
> The file.xml is situated in WEB-INF folder (where web.xml is  
> situated) and
> contains some servlet definitions.
>
> The fact is that OpenEJB parser does not read system entities  
> whereas Tomcat
> did it.

Ya, I was focused on disabling DTD downloading, and forgot the same  
system is used for file includes in XML.

> A temporary solution for me, is to store the content of file.xml in  
> web.xml,
> but it would be great if OpenEJB could read web.xml like Tomcat does.

I created a JIRA to track this issue https://issues.apache.org/jira/browse/OPENEJB-968

-dain