【发布时间】:2011-02-02 13:56:30
【问题描述】:
我正在使用 Jboss5.1.x、EJB3.0
我这几天一直在研究这个主题。听说应该很容易,但好像是因为文件太少或者有些东西我很难弄到。
我的场景是有一个计划任务,当我第一次将我的应用程序服务器项目部署到 jboss 时会触发该任务,然后我希望我的进程每 X 次重新执行一次。
我终于设法将石英 mbean 添加到 jboss-service.xml
但是:
服务器部署后如何自动触发?我看到我必须通过 servlet 来做?那么我将如何在项目部署中触发 servlet?我不能在没有 servlet 的情况下触发它并直接在 EJB bean 上执行它吗?
触发后,我想从触发方法调用一个EJB无状态bean。
我希望场景是这样的:
(应用部署 -> Quartz -> EJB bean -> ..) insteadof (应用部署 -> Quartz -> servlet -> EJB bean)
我该怎么做?这是我找到的代码:
InitialContext ctx = new InitialContext();
StdScheduler scheduler = (StdScheduler) ctx.lookup("Quartz");
JobDetail jd = new JobDetail("myjob", scheduler.DEFAULT_GROUP, NewJob.class);
CronTrigger ct = new CronTrigger("cronTrigger", "group2", "0 0/5 * * * ?");
scheduler.scheduleJob(jd, ct);
似乎这段代码只触发了 POJO(“NewJob.class”)。我想触发 EJB 无状态 bean。
有人有答案吗?请.. 最坏的情况我会从 Quartz 切换到别的东西。
谢谢, 射线。
【问题讨论】:
标签: java jboss quartz-scheduler jboss5.x