Classloading in JBOSS AS 7.1.0.Final
suikast42 Feb 20, 2012 2:54 AMHi @ all,
I must migrate an EJB 2.1 Application, which runnings in JBOSS 5.1.0 to JBOSS 7.1.0.Final and EJB 3.1.
The Migration of EJB is well done under JBOSS 6.1.0.Final.
I see that the Classloading in JBOSS 7.1.0.Final is refactored as well. So far so good.
So when I deploy the same EAR in JBOSS 7.1.0.Fina I get the Exception shown below:
08:33:27,667 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC00001: Failed to start service jboss.deployment.subunit."WMS_BASE.ear"."WMS_BASE_CONTROLLER.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."WMS_BASE.ear"."WMS_BASE_CONTROLLER.jar".POST_MODULE: Failed to process phase POST_MODULE of subdeployment "WMS_BASE_CONTROLLER.jar" of deployment "WMS_BASE.ear"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_27]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_27]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_27]
Caused by: java.lang.RuntimeException: Error getting reflective information for class com.siemag.server.orderprocessing.dao.OrderProcessorDAO with ClassLoader ModuleClassLoader for Module "deployment.WMS_BASE.ear.WMS_BASE_CONTROLLER.jar:main" from Service Module Loader
at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:70) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:58)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:70)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:117)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:54)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
... 5 more
Caused by: java.lang.NoClassDefFoundError: org/hibernate/HibernateException
at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.6.0_27]
at java.lang.Class.privateGetDeclaredFields(Class.java:2291) [rt.jar:1.6.0_27]
at java.lang.Class.getDeclaredFields(Class.java:1743) [rt.jar:1.6.0_27]
at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.<init>(ClassReflectionIndex.java:57) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:66) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
... 10 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.HibernateException from [Module "deployment.WMS_BASE.ear.WMS_BASE_CONTROLLER.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
... 15 more
This Exception occurs for all my EJB jars. So if I add "Dependencies: org.hibernate" in the Manifest for one of EJB jar then are alle the Excpetions, for other modules too, away.
After this cahange I get an Excpetion shown below:
08:48:49,090 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC00001: Failed to start service jboss.deployment.subunit."WMS_BASE.ear"."WMS_BASE_CONTROLLER.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."WMS_BASE.ear"."WMS_BASE_CONTROLLER.jar".POST_MODULE: Failed to process phase POST_MODULE of subdeployment "WMS_BASE_CONTROLLER.jar" of deployment "WMS_BASE.ear"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_27]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_27]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_27]
Caused by: java.lang.RuntimeException: Error getting reflective information for class com.siemag.server.timer.ExportCoilsToFilesTimerBean with ClassLoader ModuleClassLoader for Module "deployment.WMS_BASE.ear.WMS_BASE_CONTROLLER.jar:main" from Service Module Loader
at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:70) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:58)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:70)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:117)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:54)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
... 5 more
Caused by: java.lang.NoClassDefFoundError: jxl/write/biff/RowsExceededException
at java.lang.Class.getDeclaredFields0(Native Method) [rt.jar:1.6.0_27]
at java.lang.Class.privateGetDeclaredFields(Class.java:2291) [rt.jar:1.6.0_27]
at java.lang.Class.getDeclaredFields(Class.java:1743) [rt.jar:1.6.0_27]
at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.<init>(ClassReflectionIndex.java:57) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:66) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
... 10 more
Caused by: java.lang.ClassNotFoundException: jxl.write.biff.RowsExceededException from [Module "deployment.WMS_BASE.ear.WMS_BASE_CONTROLLER.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
... 15 more
So the jxl.jar is located in jboss-as-7.1.0.Final\standalone\lib. Why can't find JBOSS the libs automatically like in the past or must I turn a switcht for do that work?