Comment faire pour activer Quartz de planification dans Jboss as 7.0?
Quartz ne semble pas être inclus avec l'installation par défaut de Jboss as 7.0 Final (complet). Le déploiement de mon OREILLE s'affiche à l'échec lorsque le Message Driven Bean (MDB) "FareMonitorBean" est tenté d'être chargé. Cette MDB est ce que le quartz calendrier d'exécution.
Message d'erreur:
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
Résumé de MDB "FareMonitorBean" fichier de classe :
@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 {
....
}
}
Basé sur la Documentation JBoss, ma conjecture est qu'une "Extension" et "sous-système" doit être configurée pour le Quartz dans standalone/configuration/standalone.xml cependant je ne suis pas sûr de la façon de le faire. J'ai cherché sur google, jboss forums, quartz soutien doco et ne peut pas trouver quoi que ce soit. Il semble un peu pauvre pour moi que le Quartz ne fonctionne pas avec une "finale" lancement de Jboss, aussi sûrement un planificateur est une commune et la fonction requise d'une véritable serveur d'application?!
Des suggestions ou des exemples je pourrais suivre pour le faire fonctionner?
Mise à JOUR le 28 août 2011:
Quelqu'un pourrait-il m'aider avec ce problème? Je vais avoir des problèmes de stabilité et de nombreux bugs avec JBoss 6.0, et contemplant la commutation de GlassFish 3.1 si Jboss continue à être un défi souci. Est-ce juste moi ou est Jboss tout plein de bugs et de problèmes?!
OriginalL'auteur willtardy | 2011-07-19
Vous devez vous connecter pour publier un commentaire.
La
NoClassDefFoundError
pourrait être lié à une dépendance manquante.Est le quartz jar fichier disponible dans votre jboss? Peut-être que cette documentation permet de:
https://docs.jboss.org/author/display/AS7/How+do+I+migrate+my+application+from+AS5+or+AS6+to+AS7#HowdoImigratemyapplicationfromAS5oras6toas7-HowtoResolveClassNotFoundExceptionsandnoclassdeffounderrors
Voici ma solution de contournement pour utiliser le quartz dans JBoss 7:
Malheureusement AS7 Final ne prend pas en charge la
@Schedule
annotation (voir problème JBoss AS7-1158)Donc j'ai emballé le quartz jar via les dépendances maven avec mon OREILLE fichier.
Puis-je utiliser ce démarrage de la fève à ajouter les emplois et lancer le planificateur de tel que décrit dans le quartz exemples:
http://quartz-scheduler.org/docs/examples/index.html
J'utilise Maven pour l'emballage du fichier EAR: mettre la dépendance de quartz dans la pom.xml comme décrit ici: quartz-scheduler.org/download/download-catalog.html. Ensuite, le maven-oreille-plugin génère le fichier EAR et les packs de la dépendance dans le répertoire lib de l'intérieur de l'OREILLE.
Je suis à l'aide de JBoss AS7.1 et a été en mesure d'utiliser @Schedule. Je suis juste à l'aide d'un simple EJB Timer Bean droit maintenant.
OriginalL'auteur Riggs