[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openejb-user
Subject:    web.xml with SYSTEM ENTITY (in DTD) provoques NPE in OPENEJB
From:       Maxime Thieu <maxime.thieu () gmail ! com>
Date:       2008-11-28 15:53:46
Message-ID: 20736729.post () talk ! nabble ! com
[Download RAW message or body]


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.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic