gpt4 book ai didi

jboss - Jboss AS 7.0 如何启用 Quartz 调度?

转载 作者:行者123 更新时间:2023-12-01 14:02:51 27 4
gpt4 key购买 nike

Quartz 似乎没有包含在 Jboss AS 7.0 Final(完整版)的默认安装中。当尝试加载消息驱动 Bean (MDB)“FareMonitorBean”时,我的 EAR 部署似乎失败了。这个 MDB 是 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 ,我的猜测是需要在 standalone/configuration/standalone.xml 中为 Quartz 配置“扩展”和“子系统”,但是我不确定如何执行此操作。我搜索了谷歌、jboss 论坛、quartz 支持 doco,但找不到任何东西。 Quartz 不能与 Jboss 的“最终”版本一起工作,这对我来说似乎有点糟糕,因为调度程序肯定是一个成熟的应用程序服务器的常见和必需的功能?!

我可以遵循任何建议或示例来使其正常工作吗?


2011 年 8 月 28 日更新:

有人可以帮我解决这个问题吗?我遇到了 JBoss 6.0 的稳定性问题和许多错误,如果 Jboss 仍然是一个具有挑战性的工作,我正在考虑切换到 GlassFish 3.1。是我的问题还是 Jboss 充满了错误和问题?!

最佳答案

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 中使用 quartz 的解决方法:

不幸的是 AS7 Final 不支持 @Schedule 注释(参见 JBoss issue AS7-1158)

因此,我通过 Maven 依赖项将 quartz jar 与我的 EAR 文件打包在一起。

然后我使用这个启动 bean 添加作业并启动调度程序,如 quartz 示例中所述: 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();
}

}

关于jboss - Jboss AS 7.0 如何启用 Quartz 调度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6740924/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com