Quartz并未包含在Jboss AS 7.0 Final的默认安装中(完整版)。尝试加载消息驱动Bean(MDB)“FareMonitorBean”时,我的EAR部署似乎失败。这个MDB是石英计划执行的。如何在Jboss AS 7.0中启用Quartz调度?
错误消息:
10:00:34,034 WARN [org.jboss.modules] (MSC service thread 1-7) Failed to define class com.myproject.beans.FareMonitorBean in Module "deployment.myprojectEAP.ear.myprojectEJB.jar:main" from Service Module Loader: java.lang.LinkageError: Failed to link com/myproject/beans/FareMonitorBean (Module "deployment.myprojectEAP.ear.myprojectEJB.jar:main" from Service Module Loader)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:401)
.....
Caused by: java.lang.NoClassDefFoundError: org/quartz/Job
at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_26]
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) [:1.6.0_26]
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) [:1.6.0_26]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) [:1.6.0_26]
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:397)
... 18 more
MDB “FareMonitorBean” 类文件的摘要:
@MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "cronTrigger", propertyValue = EJBConstants.FARE_MONITOR_QUARTZ_SCHEDULE_STRING) })
@ResourceAdapter("quartz-jboss-2.0.2.jar")
public class FareMonitorBean implements Job {
public void execute(JobExecutionContext arg0) throws JobExecutionException {
....
}
}
基础上JBoss documentation,我的猜测是, “扩展” 和 “子系统” 必须配置为Quartz独立/配置/ standalone.xml,但我不知道如何做到这一点。我搜索谷歌,jboss论坛,石英支持doco和找不到任何东西。对Quartz来说,对于Jboss的“最终”版本来说,这似乎有点糟糕,因为调度程序是一个完全成熟的应用程序服务器的常见和必需功能?!
任何建议或例句我可以按照它来工作?
UPDATE 2011年8月28日:
可能有人请帮我解决这个问题?我遇到了稳定性问题和JBoss 6.0中的大量错误,并且如果Jboss仍然是一个具有挑战性的工作,那么我们将考虑切换到GlassFish 3.1。这只是我还是Jboss只是充满了错误和问题?!
谢谢您的回答。我会尽力实施你的解决方案。问题是:Jboss 7.0 Final没有附带任何石英文件,那么您从哪里获得了与Jboss 7合作的石英jar文件? – willtardy
我使用Maven打包EAR文件:将石英的依赖关系放入pom.xml,如下所述:http://www.quartz-scheduler.org/download/download-catalog.html。 然后Maven-ear-plugin生成EAR文件并在EAR内的lib目录中打包依赖项。 – Riggs
我正在使用JBoss AS7.1并能够使用@Schedule。我现在只使用一个简单的EJB Timer Bean。 – javatestcase