Jetty と Wildfly の間でフィルターの初期化の実装に違いがあることを発見したと思います。
Tapestry、Spring、および Hibernate を使用した Web アプリケーションを作成しました。Jetty から Wildfly に移行しようとしています。
私の web.xml には 2 つのフィルターがあります。
まず、OpenSessionInViewFilter (doInternalFilter の実行時に WebApplicationContext が存在する必要があります)。ハイバネート セッションがバックエンド データベースに対するすべての Tapestry アクティビティを包含するように、このフィルターは Tapestry の前にある必要があります。
次に、タペストリー フレームワーク (Spring 統合付き) Filter です。これは、initメソッドで Spring の WebApplicationContext をロードします。
Jetty (Tomcat でも) で問題なくこのシナリオを実行していましたが、Wildfly に移動すると、OpenSessionInViewFilter が IllegalStateException をスローし、WebApplicationContext が見つからないことを通知しました。
これをデバッグしようとしたところ、Wildfly がinit Filter メソッドを呼び出していないことがわかりました。その Filter は、処理する最初のリクエストを受け取るまでです。これは特定のシナリオではパフォーマンスが向上する可能性があることに同意しますが、現在のシナリオでは問題です。
アプリケーションの起動時にフィルターを初期化するように Wildfly に指示する方法はありますか?
ありがとうございました。