Quartz-ra.rar を使用して QuartzMDB から Jboss AS 6.1 の EJB タイマーにアプリケーションを移行した後、上記の例外に遭遇しました。(アプリケーションを wildfly 8.1 にアップグレードする一環として)
以下のejbを使用するジョブで例外が発生します。
@Stateless
@TransactionAttribute(TransactionAttributeType.REQUIRED)
@RolesAllowed({"admin"})
public class PlatformPluginBean implements PlatformPluginRemote {
// some code here
public Collection<PlatformPlugin> getPlugins() {
return new ArrayList<PlatformPlugin>(schemaToPlugin.values());
}
}
以下は、正常に機能した移行前のジョブです。
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "cronTrigger", propertyValue = "0 0 * * * ?"),
@ActivationConfigProperty(propertyName = "jobName", propertyValue = "PruneJob")})
@ResourceAdapter("quartz-ra.rar")
@RunAs("admin")
public class PruneJob implements Job {
@EJB
private PlatformPluginRemote platformPluginRemote;
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
for (PlatformPlugin platformPlugin: platformPluginRemote.getPlugins()) {
// some stuff here
}
}
}
以下はejb自動タイマーに変更後の作業です。
@Stateless
@RunAs("admin")
public class PruneJob {
@EJB
private PlatformPluginRemote platformPluginRemote;
@Schedule(hour="*", minute="0", persistent=false)
public void execute() {
for (PlatformPlugin platformPlugin: platformPluginRemote.getPlugins()) {
// some stuff here
}
}
}
platformPluginRemote.getPlugins()
呼び出し時に例外が発生しました。