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