0

アプリケーションが WebLogic 10.3.5 で起動するときに、EJB TimerService タイマーを起動しようとしています。

タイマーは EJB です。ServletContextListener と ApplicationLifecycleListener の両方を使用してみました。

ServletContextListener を使用すると、次のようになります。

Caused By: java.lang.NullPointerException
at weblogic.ejb.container.timer.ClusteredEJBTimerManager.createTimer(ClusteredEJBTimerManager.java:76)
at weblogic.ejb.container.timer.ClusteredEJBTimerManager.createTimer(ClusteredEJBTimerManager.java:95)

ApplicationLifecycleListener を使用すると、EJB を検索することさえできません。ただし、POJO としてインスタンス化すると、NPE が得られます。

java.lang.NullPointerException
at com.oracle.eas.announcements.deliveryengine.ejb.RecipientsPopulationTimerBean.createTimer(RecipientsPopulationTimerBean.java:77)
at com.oracle.eas.announcements.deliveryengine.listeners.AppStartStopListener.postStart(AppStartStopListener.java:48)

WebLogic 10.3.5 のアプリケーションで作成/削除されるタイマーの作成方法に関するアドバイスをいただければ幸いです。

4

1 に答える 1

0

Oracle サポートは、サーバーの状態によりこれが不可能であることを確認しています。

私の方法論が間違っていたことが判明しました。ブートごとに TimerService を一度だけ作成し、それを使用してその後タイマーを制御する必要はありません。

于 2013-02-28T13:02:22.640 に答える