1

ジャージ サービスに次の動作を追加しようとしています。

  • WEB-INF フォルダーからいくつかのファイルをロード/解析する
  • アプリケーションの存続期間を通じてすばやくアクセスできるように、シングルトンに格納します。

現在、私が取り組んでいる解決策は次のとおりです。

  • リソース リクエストの ServletContext を取得する
  • ファイルにアクセスする必要があるリクエストごとに、このメソッド getSomething(criteria, servletContext) を呼び出します

メソッド getRessourceAsStream() を使用してリソースをロードするために使用できるように、servletContext を渡す必要があります。そうしないと、正しいパスを取得できません。これが私の主な問題点です。

アプリケーションサーバーでサーバーの準備ができたら、サーバーにこれを自動的に実行させたいのですが、正確にこれを実行できる場所を見つけることができません。これにより、常に servletContext を渡す必要がなくなり、カスタム デシリアライザーの一部でそのシングルトンを使用できるようになり、このシングルトンを使用するコードがよりクリーンになります。

4

1 に答える 1

1

サーブレットアプリケーションの起動時に何らかの作業を行いたい場合はServletContextListener、具体的にはcontextInitialized(ServletContextEvent)メソッドを使用してください。

于 2012-10-01T15:58:28.903 に答える