Java Webアプリケーションを開発中です。アプリケーションはLuceneインデックスに接続します。 IndexSearcherのシングルトンインスタンスを作成します。このインスタンスはいくつかのファイルを開きます。 Webアプリケーションを再デプロイすると、IndexSearcherの以前のインスタンスで開いたファイルは引き続き開いたままになり、再デプロイされたアプリケーションによって別のインスタンスが作成されます。いくつかの再デプロイ後、システムは「オープンファイルが多すぎます」例外をスローし始めます。再デプロイする前に古いインスタンスを閉じて、古いファイルが閉じられるようにしたいのですが、どうやってそれを行うのか分かりません。 load-on-startupと同様に、un-deploy時に呼び出されるweb.xmlにディレクティブがありますか?私はjbossサーバー上でWebアプリケーションを実行しています。Java Webアプリケーションからの展開解除メソッドの呼び出し
8
A
答えて
17
ServletContextListener
を実装します。
@WebListener
public class LuceneConfig implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
// Do your job here during webapp startup.
}
@Override
public void contextDestroyed(ServletContextEvent event) {
// Do your job here during webapp shutdown.
}
}
あなたは、その後、あなたは次のように@WebListener
注釈を削除し、web.xml
で手動で登録する必要があります(ただし2年間のうち、すでにある)まだサーブレット3.0でない場合:
<listener>
<listener-class>com.example.LuceneConfig</listener-class>
</listener>
2
javax.servlet.ServletContextListener
を実装し、そのクラスをに<listener>
として登録すると、コンテキストがアンロードされる前にcontextDestroyed()
メソッドが呼び出されます。
関連する問題
- 1. Javaアプリケーションを呼び出すPHP Webアプリケーション
- 2. Webアプリケーションの呼び出し
- 3. メインメソッドからJavaアプリケーションのWebサービスを呼び出す
- 4. C++からWebメソッドを呼び出す
- 5. JavaアプリケーションでWebメソッドを呼び出す方法は?
- 6. 別のC#アプリケーションからのC#アプリケーションの呼び出しメソッド
- 7. WebクライアントからJava RMIメソッドを呼び出す方法は?
- 8. 他のオブジェクトからメソッドを呼び出すメソッド呼び出し
- 9. spider_closedメソッドの呼び出し解析メソッド
- 10. 別のメソッドからのJavaスクリプト呼び出しメソッド
- 11. Web APIをアプリケーションから呼び出す
- 12. 拡張ループのジェネリックオブジェクトからのメソッド呼び出しの解決
- 13. WebアプリケーションからJavaネイティブインタフェースを呼び出す
- 14. Java WebアプリケーションからProlog-predicateを呼び出す方法は?
- 15. JavaメソッドからJavaScriptを呼び出す
- 16. JavaからPHPメソッドを呼び出す
- 17. シェルスクリプトからJavaメソッドを呼び出す
- 18. PHP5からJavaメソッドを呼び出す
- 19. メソッド呼び出し中のメソッドjava
- 20. Android Javaメソッド呼び出し
- 21. Webアプリケーションのメソッド内でWindowsアプリケーションexeを呼び出す
- 22. JavaアプリケーションからCygwinを呼び出す
- 23. 非同期Java Webサービス呼び出しの呼び出し
- 24. vb.netアプリケーションの別のアプリケーションからメソッドを呼び出す
- 25. Java - 解析メソッド他のクラスへの呼び出し
- 26. Javaでのオーバーライド:メソッド呼び出しの解決方法
- 27. メニューからのメソッド呼び出しでAndroidアプリケーションがクラッシュする
- 28. アプリケーションのメソッド呼び出しを呼び出す
- 29. ADSF Webアプリケーション呼び出しWebサービス
- 30. 他のメソッドからのJavaの呼び出し値
登録なしでここで動作します。 Payara 4.1(173ビルド)でMojarra 2.3.3を使用する – Roland
確かに正常に動作します。 Payara 4.xはServlet 3.1ベースです。それで '@ WebListener'はうまく動作します。あなたがまだサーブレット3.0にいないときは答えられたように、それは動作しません。 JSF impl/versionは、ここでは役割を果たさないため、無関係です。サーブレットのバージョンのみが関連しています。 – BalusC
ありがとうございます。 – Roland