users@glassfish.java.net

Is Xerces is supplied by Glassfish 2.1.1?

From: Ed Hillmann <ed.hillmann_at_gmail.com>
Date: Mon, 13 Sep 2010 11:59:24 +1000

Hi all. I'm getting an exception whenever I redeploy my WAR file into a
Glassfish 2.1.1 instance.

[#|2010-09-13T11:36:56.635+1000|INFO|sun-appserver2.1|javax.enterprise.resource.webcontainer.jsf.config|_ThreadID=19;_ThreadName=httpWorkerThread-16126-0;/peweb;|Initializing
Mojarra (1.2_13-b01-FCS) for context '/peweb'|#]

[#|2010-09-13T11:36:56.828+1000|SEVERE|sun-appserver2.1|javax.enterprise.system.container.web|_ThreadID=19;_ThreadName=httpWorkerThread-16126-0;_RequestID=93aed901-e5c5-4df1-aae1-eb5d09eabafe;|WebModule[/peweb]PWC1275:
Exception sending context initialized event to listener instance of class
com.sun.faces.config.ConfigureListener
com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! DTD
factory class org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend
from DTDDVFactory.
    at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:215)
    at
com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:196)
    at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4655)
    at
org.apache.catalina.core.StandardContext.start(StandardContext.java:5364)
    at com.sun.enterprise.web.WebModule.start(WebModule.java:345)
    at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:986)
    at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:970)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:704)
    at
com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1649)
    at
com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1254)
    at
com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:182)
    at
com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebModuleDeployEventListener.java:278)
    at
com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:1005)
    at
com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:992)
    at
com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:470)
    at
com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:182)
    at
com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)
    at
com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:231)
    at
com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298)
    at
com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132)
    at
com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
    at
com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:966)
    at
com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:609)
    at
com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:653)
    at
com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:773)
    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:597)
    at
com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:390)
    at
com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:373)
    at
com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:477)
    at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
    at
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
    at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at
com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)
    at $Proxy1.invoke(Unknown Source)
    at
com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)
    at
com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:170)
    at
com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:69)
    at
com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:155)
    at
com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:122)
    at
com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:193)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
    at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
    at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
    at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
    at
com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
    at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
    at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
    at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
    at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093)
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
    at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
    at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
    at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
    at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093)
    at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291)
    at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:666)
    at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:597)
    at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:872)
    at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
    at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
    at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
    at
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264)
    at
com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:117)
Caused by: org.apache.xerces.impl.dv.DVFactoryException: DTD factory class
org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from
DTDDVFactory.
    at org.apache.xerces.impl.dv.DTDDVFactory.getInstance(Unknown Source)
    at org.apache.xerces.impl.dv.DTDDVFactory.getInstance(Unknown Source)
    at org.apache.xerces.impl.xs.opti.SchemaParsingConfig.<init>(Unknown
Source)
    at org.apache.xerces.impl.xs.opti.SchemaParsingConfig.<init>(Unknown
Source)
    at org.apache.xerces.impl.xs.traversers.XSDHandler.<init>(Unknown
Source)
    at org.apache.xerces.impl.xs.traversers.XSDHandler.<init>(Unknown
Source)
    at org.apache.xerces.impl.xs.XMLSchemaLoader.<init>(Unknown Source)
    at org.apache.xerces.impl.xs.XMLSchemaLoader.<init>(Unknown Source)
    at org.apache.xerces.impl.xs.XMLSchemaValidator.<init>(Unknown Source)
    at
org.apache.xerces.jaxp.validation.XMLSchemaValidatorComponentManager.<init>(Unknown
Source)
    at org.apache.xerces.jaxp.validation.ValidatorHandlerImpl.<init>(Unknown
Source)
    at
org.apache.xerces.jaxp.validation.AbstractXMLSchema.newValidatorHandler(Unknown
Source)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.<init>(Unknown Source)
    at
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown
Source)
    at
com.sun.faces.config.ConfigManager$ParseTask.getBuilderForSchema(ConfigManager.java:523)
    at
com.sun.faces.config.ConfigManager$ParseTask.getDocument(ConfigManager.java:455)
    at
com.sun.faces.config.ConfigManager$ParseTask.call(ConfigManager.java:416)
    at
com.sun.faces.config.ConfigManager$ParseTask.call(ConfigManager.java:373)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)
|#]

Once this happens, I cannot re-use my application until I restart the
server. I've done some looking, and my WAR file does include a
xercesImpl.jar file. If I remove it, I don't get the error on deploy.
However, I have some code that references xerces-specific factories and my
application fails if I don't include xercesImpl.jar in my WAR file.

I saw a similar issue (
https://glassfish.dev.java.net/issues/show_bug.cgi?id=11638), on got
hopeful, except it's solution is to use Glassfish 3 and JSF 2. This is not
an option for me at the moment.

I've seen some documents which state as of Java 6 (what I'm using), xerces
is provided. My behaviour isn't showing that.

Is XercesImpl supplied as part of Glassfish 2.2.1? If so, how can I get my
domains to include it in its classpath?

Thanks for any help,
Ed