2012-04-04 16 views
3

WebアプリケーションがTomcat 6にWARファイルとしてデプロイされています。アプリケーション内から、そのコンテキスト内のディレクトリにファイルを提供したいと思います。例えば、私は/mydir/webappsからmyapp.warを展開し、私は経由して自分のアプリケーションにアクセス:Tomcatコンテキスト内からのファイルの提供

http://myhost:myport/myapp/ 

私は経由でファイルを提供したいと思います:

http://myhost:myport/myapp/files/somefile.txt 

私はこれをどのように行うことができますか?これまでのところ、私は唯一のアプリケーションコンテキストの外のファイルにを提供することができる午前:

http://myhost:myport/files/somefile.txt 

ファイルが/mydir/webapps/filesではなく、/mydir/webapps/myapp/filesディレクトリに座って。

答えて

-1

あなたの/mydir/webapps/myapp/META-INF/web.xmlに<display-name>myapp</display-name> を設定しましたか?

+0

web.xmlファイルはファイルシステムではなくWAR内にあり、その中に ' Web_myapp'があります。 '/ mydir/myapp'ディレクトリは、作成するまで存在しませんでした。これは 'myapp.war'をデプロイした後です。 – Brian

+0

ファイルを扱うためにファイルシステムが必要なので、WARがファイルシステムに展開(展開)するようにWebアプリケーションをデプロイする必要があります(このタイプのデプロイメントしか使用しません)。方法はhttps://tomcat.apache.org/tomcat-6.0-doc/deployer-howto.htmlを参照してください。 "deployOnStartup"属性を "true"に設定する必要があります。 – dr0i

+0

これは答えではなく質問です。また、display-nameタグは、質問との関連性がゼロです。使用可能な管理ツールでのアプリケーションの表示方法にのみ影響します。コンテキストパスには影響しません。 –

1

外部ディレクトリを指すサブコンテキストを使用します。

あなたの例ではパスに基づいて、次のファイルを追加したい: $ CATALINA_BASE/<は、EngineName >/<ホスト名> /myapp#files.xml (通常は$ CATALINA_BASE /カタリナ/ localhostの/ myappの#ファイルを以下の内容での.xml

これが安全に機能するためには、/ mydirの/ webappsに/ファイルは自動デプロイが有効になっている任意のホストののappBase外でなければならないこと

<Context docBase="/mydir/webapps/files" /> 

注意。