0

メイン アプリケーション コンテキストによってインスタンス化された Embedded Jetty を含むアプリケーションがあります。Jetty には、初期化された追加の Spring Web アプリケーション コンテキストがあり、HTTP Invoker を使用してサービスがエクスポートされます。現在、組み込みコンテキストが (によってDispatcherSerlvet) 初期化に失敗した場合、Web アプリケーション コンテキストは単に利用できなくなりますが、Jetty は指定されたポートで引き続き実行されます。これにより、アプリケーションの一貫性が失われます。埋め込まれた Spring コンテキストが起動に失敗した場合、メイン コンテキスト (およびアプリケーション) をどうにか破棄するのが好きです。これを行う正しい方法は何ですか?DispatcherServlet初期化の問題について通知を受けるためのリスナーはありますか?

4

1 に答える 1

1

私は自分でこれを解決することができました。JettyServletHolderWebAppContextクラスgetUnavailableException()に、初期化エラーを返す関数、または起動が成功した場合はnullを返す関数が追加されました。JETTY-319機能リクエストチケットを参照してください。ServletHolderSpringを管理するBeanにIDを追加しDispatcherServlet、外部のSpringコンテキストを更新した後、このBeanに対する簡単なチェックを追加しました。エラーが発生した場合は、好きなようにアプリケーションを破棄できます。

于 2012-09-10T07:01:43.993 に答える