[jboss-user] [EJB/JBoss] - Re: xercesImpl conflict: How to isolate an EAR deployment

negora do-not-reply at jboss.com
Wed May 6 15:58:49 EDT 2009


jaikiran: First of all, thank you for your quick answer. It's nice to have such help.

I've tested all this using a very simple EAR file whose structure is as follows:


  | trax.ear
  | |
  | |----- lib
  | |       |----- xercesImpl.jar
  | |
  | |----- META-INF
  | |       |----- application.xml
  | |       |----- jboss-app.xml
  | |       |----- MANIFEST.MF
  | |
  | |----- trax-ejb.jar
  |         |----- META-INF
  |                 |----- jboss.xml
  |                 |-----MANIFEST.MF
  | 

The EAR package can be downloaded directly from http://www.negora.com/file/trax.ear .

This is the trace of the exception returned by JBoss:


  | 21:26:01,984 WARN  [ServiceController] Problem creating service jboss.j2ee:service=EJB3,module=trax-ejb.jar
  | org.jboss.xb.binding.JBossXBRuntimeException: Failed to create a new SAX parser
  |         at org.jboss.xb.binding.UnmarshallerFactory$UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:100)
  |         at org.jboss.ejb3.metamodel.JBossDDObjectFactory.parse(JBossDDObjectFactory.java:76)
  |         at org.jboss.ejb3.Ejb3HandlerFactory$DDFactory.<init>(Ejb3HandlerFactory.java:45)
  |         at org.jboss.ejb3.Ejb3HandlerFactory.getInstance(Ejb3HandlerFactory.java:83)
  |         at org.jboss.ejb3.Ejb3Deployment.deploy(Ejb3Deployment.java:383)
  | 
  |         at org.jboss.ejb3.Ejb3Deployment.create(Ejb3Deployment.java:327)
  |         at org.jboss.ejb3.Ejb3Module.createService(Ejb3Module.java:77)
  |         at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:260)
  |         at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:243)
  |         at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
  | 
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
  |         at $Proxy0.create(Unknown Source)
  |         at org.jboss.system.ServiceController.create(ServiceController.java:330)
  |         at org.jboss.system.ServiceController.create(ServiceController.java:273)
  |         at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
  |         at $Proxy33.create(Unknown Source)
  |         at org.jboss.ejb3.EJB3Deployer.create(EJB3Deployer.java:492)
  |         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:585)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  |         at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
  |         at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97)
  |         at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238)
  |         at org.jboss.wsf.container.jboss42.DeployerInterceptor.create(DeployerInterceptor.java:76)
  |         at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.create(SubDeployerInterceptorSupport.java:180)
  |         at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:91)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
  |         at $Proxy34.create(Unknown Source)
  |         at org.jboss.deployment.MainDeployer.create(MainDeployer.java:969)
  |         at org.jboss.deployment.MainDeployer.create(MainDeployer.java:959)
  |         at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:818)
  |         at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
  |         at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  |         at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
  |         at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
  |         at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  |         at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
  |         at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
  |         at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
  |         at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
  |         at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
  |         at $Proxy9.deploy(Unknown Source)
  |         at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
  |         at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:610)
  |         at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
  |         at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274)
  |         at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225)
  | Caused by: org.jboss.xb.binding.JBossXBException: Failed to create a new SAX parser
  |         at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.<init>(SaxJBossXBParser.java:96)
  |         at org.jboss.xb.binding.UnmarshallerImpl.<init>(UnmarshallerImpl.java:55)
  |         at org.jboss.xb.binding.UnmarshallerFactory$UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:96)
  |         ... 72 more
  | Caused by: java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration
  |         at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
  |         at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
  |         at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
  |         at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
  |         at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
  |         at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.<init>(SaxJBossXBParser.java:92)
  |         ... 74 more
  | 
  | 

It seems that despite declaring an exclusive class scope in the "jboss-app.xml" file of the EAR package, JBoss "overwrites" its own "xercesImpl.jar" with the one included in the package, and thus, the conflict to read the following XMLs contained in "trax.ear".

If you rename or remove the "lib" directory, everything works fine, obviously.

About the specifications of my programming environment, I'm using:

- Windows XP - Service Pack 3
- Java Runtime Environment 6 - Update 13
- Java Development Kit 5 - Update 16
- JBoss Application Server v. 4.2.2
- Library Xerces-J v. 2.9.1

Thanks a lot ;) .

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4229182#4229182

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4229182



More information about the jboss-user mailing list