2011-07-19 2 views
3

Quartzは、Jboss AS 7.0 Final(フル)のデフォルトインストールに含まれていないようです。 Message Driven Bean(MDB) "FareMonitorBean"をロードしようとすると、EARのデプロイメントが失敗するように見えます。このMDBは、石英のスケジュールが実行するものです。Jboss AS 7.0でクォーツスケジューリングを有効にする方法は?

エラーメッセージ:MDB "FareMonitorBean" クラスファイルの

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 

概要:JBoss documentationに基づいて

@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 { 
     .... 
    } 
} 

、私の推測では、 "拡張" と "サブシステム" があることが必要であるということですスタンドアロン/設定/ standalone.xmlでQuartz用に設定されていますが、どうやってこれを行うのかはわかりません。私はgoogle、jboss forums、quartz support docoを検索して何も見つけることができません。 QuartzはJbossの「最終的な」リリースでは動作しません。スケジューラは本格的なアプリケーションサーバの共通の必須機能ですからね!

私はそれを動作させるために従うことができる提案や例はありますか?


UPDATE 8月28日2011:

誰かがこの問題で私を助けていただけますか? JBoss 6.0で安定性の問題と多数のバグがあり、Jbossが引き続き挑戦的である場合はGlassFish 3.1への移行を検討しています。それは私だけか、バボと問題でいっぱいのJbossですか?

答えて

4

NoClassDefFoundErrorは、欠落している依存関係に関連している可能性があります。 jbossでquartz jarファイルを利用できますか?たぶん、このドキュメントは役立ちます: https://docs.jboss.org/author/display/AS7/How+do+I+migrate+my+application+from+AS5+or+AS6+to+AS7#HowdoImigratemyapplicationfromAS5orAS6toAS7-HowtoResolveClassNotFoundExceptionsandNoCLassDefFoundErrors

ここにJBoss 7に水晶を使用するための私の回避策です:

残念ながらAS7ファイナル@Schedule注釈をサポートしていません(JBossの発行AS7-1158を参照)

は、だから私がパック私のEARファイルとの依存関係を介して石英瓶。

その後、私は仕事を追加し、石英の例で説明したように、スケジューラを起動するために、このスタートアップBeanを使用します。 http://quartz-scheduler.org/docs/examples/index.html

@Singleton 
@Startup 
public class StartupBean 
{ 

    @PostConstruct 
    private void scheduleJobs() 
    { 
     // Exception Handling omitted 
     final Scheduler sched = new StdSchedulerFactory().getScheduler(); 
     sched.scheduleJob(createJob(), createTrigger()); 
     sched.start(); 
    } 

} 
+0

は、あなたの答えをいただき、ありがとうございます。あなたのソリューションを実装しようとします。しかし、質問:Jboss 7.0ファイナルにはクォーツファイルが付属していないので、Jboss 7でクォーツジャーファイルをどこから入手しましたか? – willtardy

+0

私はMavenを使ってEARファイルをパッケージ化しています。ここに記載されているように、quartzの依存関係をpom.xmlに入れてください:http://www.quartz-scheduler.org/download/download-catalog.html 次に、maven-ear-pluginがEARファイルを生成し、EAR内のlibディレクトリ内に依存関係をパックします。 – Riggs

+1

私はJBoss AS7.1を使用しており、@スケジュールを使用することができました。私は今、単純なEJB Timer Beanを使っています。 – javatestcase

関連する問題