0

Web アプリが実行されているコンテキストの 1 つとは異なるフォルダーからファイルを提供する必要があるという状況になりました。例として、Web アプリが "/opt/tomcat/webapps/ROOT/" のサーブレット コンテキストで実行されており、"/opt/my_other_folder/" に存在するファイルを提供する必要があるとします。これらのフォルダーはクライアントによって実行時に変更される可能性があるため、これらのディレクトリを指す新しいコンテキストを単純に追加することはできません。そのためだけにWebサーバーを書き直す必要がないという解決策が欲しいです。また、私が取り組んでいる製品は一般的なものであるため、一部のサーブレット コンテナーに固有のソリューションはありません。

ありがとう!

4

1 に答える 1

0

ファイルのみを提供している場合は、サーブレット コンテナーの前に Apache HTTP Server などを配置することを検討します。この場合、さまざまなディレクティブを使用して、簡単に構成された場所を指す「仮想ディレクトリ」を提供できます。

それ以外の場合は、本質的に同じことを行う標準の Java サーブレットを作成して構成することができます。サーブレットによって読み取られる Java プロパティ ファイルに実際のパスを格納します。しかし、これは多くの作業ではありませんが、上記の Apache HTTP Server ソリューションよりもはるかに多くの作業になります。これは、 Servlet for serve static content に投稿されたいくつかの回答と非常によく似ています。具体的には、Apache Tomcat のDefaultServletを使用または拡張できます。(ここではいくつかの Tomcat 固有のクラスが使用されていますが、それらは一般的な同等のものに簡単に置き換えることができます。) http://balusc.blogspot.com/2009/02/fileservlet-supporting-resume-and.html探しているものにさらに近く、完全に汎用的ですが、追加の重要な機能がいくつかあります.

これらのオプションはどちらも非常に汎用的で、特定のサーブレット コンテナーに固有のものではありません。

于 2011-12-28T18:37:02.080 に答える