最新の Liberty への移行申請中に、Timer の作成に問題が発生しました。Timer は、initialize() メソッド (@PostConstruct) の @Singleton アノテーション付きクラスで作成されます。コードは十分に簡単です:
ScheduleExpression schedule = new ScheduleExpression();
setScheduleExpressionTime(schedule);
TimerConfig timerConfig = new TimerConfig();
timerConfig.setPersistent(false);
timerScheduled = timerService.createCalendarTimer(schedule, timerConfig);
アプリケーションをデプロイすると、永続化タイマーのデータソースを作成するという提案で例外が発生します。私は知っています-タイマーはデフォルトで永続的であり、その状態を維持するにはデータソースとテーブルが必要ですが、非永続性を作成するように依頼します。
サーバー機能から持続タイマーのサポートを削除しようとしていました (Java EE 7 フルプラットフォーム機能を Java™ EE 7 Web プロファイルに変更したため、ejb-3.2 は不要になりました)。そして今、例外があります: CNTR4019E: 永続タイマーを作成またはアクセスできません。永続的な EJB タイマーは、server.xml ファイルで構成されたどの機能でもサポートされていません。
したがって、サーバーは非永続タイマーを作成するという私の要件を無視し、常に永続性を作成しようとしているようです。このコードは、以前は一部の古い WAS (JEE6) で機能していましたが、現在はデプロイできませんでした。
誰かがこの問題を抱えていましたか?私は何か間違ったことをしているかもしれませんか?前もって感謝します。