Quartz integration with JBoss 7
irbash May 2, 2013 8:40 AMHi,
I am trying to migrate our application from jboss 5.1 to jboss 7.1. We use Quartz schedular in jboss 5.1, but unfortunately jboss 7.1 doesn't support quartz.
I read several discussions in this community forum, but was still not able to integrate quartz with jboss as 7.1.
Would be glad if someone can let me know how to proceed.
I have done the following, please correct me if I am wrong:
1. Created a module for quartz:
a. Created a folder structure JBoss 7\modules\org\quartz\main
b. Added module.xml and quartz-all-2.0.2.jar
c. Content of module.xml is:
<module xmlns="urn:jboss:module:1.1" name="org.quartz"> <resources> <resource-root path="quartz-all-2.0.2.jar"/> <!-- Insert resources here --> </resources> <dependencies> <module name="org.slf4j"/> <module name="javax.api"/> </dependencies> </module>
2. Created a sample application with one QuartzJob:
package com.sample; import javax.ejb.MessageDriven; import org.jboss.ejb3.annotation.ResourceAdapter; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import javax.ejb.ActivationConfigProperty; @MessageDriven(activationConfig = {@ActivationConfigProperty(propertyName = "cronTrigger", propertyValue = "0 0/1 * * * ?")}) @ResourceAdapter("quartz-all-2.0.2.jar") public class QuartzMDB implements Job { public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { System.out.println("Quartz job executed!"); } }
3. Deployed the above program as jar in Standalone\deployment
4. When I start the jboss server I get the following error: (I start the server with server-config=standalone-full.xml)
java.lang.ClassNotFoundException: org.quartz.Job from [Module "deployment.QuartzMDB.jar:main" from Service Module Loader]
full stack trace :
14:31:58,716 WARN [org.jboss.modules] (MSC service thread 1-5) Failed to define class com.sample.QuartzMDB in Module "deployment.QuartzMDB.jar:main" from Service Module Loader: java.lang.LinkageError: Failed to link com/sample/QuartzMDB (Module "deployment.QuartzMDB.jar:main" from Service Module Loader) at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396) at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243) at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73) at org.jboss.modules.Module.loadModuleClass(Module.java:517) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) at java.lang.Class.forName0(Native Method) [rt.jar:] at java.lang.Class.forName(Unknown Source) [rt.jar:] at org.jboss.as.server.deployment.reflect.DeploymentClassIndex.classIndex(DeploymentClassIndex.java:54) at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:63) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:55) [jboss-as-ee-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:] at java.lang.Thread.run(Unknown Source) [rt.jar:] Caused by: java.lang.NoClassDefFoundError: org/quartz/Job at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:] at java.lang.ClassLoader.defineClass(ClassLoader.java:820) [rt.jar:] at java.security.SecureClassLoader.defineClass(Unknown Source) [rt.jar:] at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327) at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391) ... 19 more Caused by: java.lang.ClassNotFoundException: org.quartz.Job from [Module "deployment.QuartzMDB.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.performLoadClass(ConcurrentClassLoader.java:398) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) ... 24 more 14:31:58,753 WARN [org.jboss.modules] (MSC service thread 1-5) Failed to define class com.sample.QuartzMDB in Module "deployment.QuartzMDB.jar:main" from Service Module Loader: java.lang.LinkageError: Failed to link com/sample/QuartzMDB (Module "deployment.QuartzMDB.jar:main" from Service Module Loader) at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396) at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243) at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73) at org.jboss.modules.Module.loadModuleClass(Module.java:517) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) at java.lang.Class.forName0(Native Method) [rt.jar:] at java.lang.Class.forName(Unknown Source) [rt.jar:] at org.jboss.as.server.deployment.reflect.DeploymentClassIndex.classIndex(DeploymentClassIndex.java:54) at org.jboss.as.ejb3.deployment.processors.dd.DeploymentDescriptorMethodProcessor.handleStatelessSessionBean(DeploymentDescriptorMethodProcessor.java:97) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.ejb3.deployment.processors.dd.DeploymentDescriptorMethodProcessor.deploy(DeploymentDescriptorMethodProcessor.java:76) [jboss-as-ejb3-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:] at java.lang.Thread.run(Unknown Source) [rt.jar:] Caused by: java.lang.NoClassDefFoundError: org/quartz/Job at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:] at java.lang.ClassLoader.defineClass(ClassLoader.java:820) [rt.jar:] at java.security.SecureClassLoader.defineClass(Unknown Source) [rt.jar:] at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327) at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391) ... 19 more Caused by: java.lang.ClassNotFoundException: org.quartz.Job from [Module "deployment.QuartzMDB.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.performLoadClass(ConcurrentClassLoader.java:398) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) ... 24 more 14:31:58,800 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed to start service jboss.deployment.unit."QuartzMDB.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."QuartzMDB.jar".POST_MODULE: Failed to process phase POST_MODULE of deployment "QuartzMDB.jar" at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.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.runWorker(Unknown Source) [rt.jar:] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:] at java.lang.Thread.run(Unknown Source) [rt.jar:] Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS014400: Could not load component class at org.jboss.as.ejb3.deployment.processors.dd.DeploymentDescriptorMethodProcessor.deploy(DeploymentDescriptorMethodProcessor.java:79) at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] ... 5 more Caused by: java.lang.ClassNotFoundException: com.sample.QuartzMDB from [Module "deployment.QuartzMDB.jar:main" from Service Module Loader] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) [jboss-modules.jar:1.1.1.GA] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.1.1.GA] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.1.1.GA] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.1.1.GA] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.1.1.GA] at java.lang.Class.forName0(Native Method) [rt.jar:] at java.lang.Class.forName(Unknown Source) [rt.jar:] at org.jboss.as.server.deployment.reflect.DeploymentClassIndex.classIndex(DeploymentClassIndex.java:54) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.ejb3.deployment.processors.dd.DeploymentDescriptorMethodProcessor.handleStatelessSessionBean(DeploymentDescriptorMethodProcessor.java:97) at org.jboss.as.ejb3.deployment.processors.dd.DeploymentDescriptorMethodProcessor.deploy(DeploymentDescriptorMethodProcessor.java:76) ... 6 more 14:31:58,829 INFO [org.jboss.as] (MSC service thread 1-5) JBAS015951: Admin console listening on http://127.0.0.1:9990 14:31:58,829 ERROR [org.jboss.as] (MSC service thread 1-5) JBAS015875: JBoss AS 7.1.1.Final "Brontes" started (with errors) in 3151ms - Started 176 of 258 services (1 services failed or missing dependencies, 80 services are passive or on-demand) 14:31:58,830 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS015870: Deploy of deployment "QuartzMDB.jar" was rolled back with failure message {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"QuartzMDB.jar\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"QuartzMDB.jar\".POST_MODULE: Failed to process phase POST_MODULE of deployment \"QuartzMDB.jar\""}} 14:31:58,839 INFO [org.jboss.as.server.deployment] (MSC service thread 1-6) JBAS015877: Stopped deployment QuartzMDB.jar in 7ms 14:31:58,841 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report JBAS014777: Services which failed to start: service jboss.deployment.unit."QuartzMDB.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."QuartzMDB.jar".POST_MODULE: Failed to process phase POST_MODULE of deployment "QuartzMDB.jar" 14:31:58,850 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) {"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"QuartzMDB.jar\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"QuartzMDB.jar\".POST_MODULE: Failed to process phase POST_MODULE of deployment \"QuartzMDB.jar\""}}}}
Any suggestions would be great.
Thanks,
Irfan