Ubuntu 9.04 上の Tomcat 6 に Java Web アプリをデプロイしています。特定のイメージについては、別のイメージ ディレクトリへのシンボリック リンクを作成したいと考えています。これにより、アプリケーションが削除されて再デプロイされた場合でも、サーバー上に残っているイメージを参照できるようになります。
アプリケーションは/var/lib/tomcat6/webapps/ROOT/
ディレクトリにデプロイされ、images
ディレクトリは war 内に存在します。アプリケーションをデプロイすると、ディレクトリへのシンボリック リンクが作成されsaved_images
、 のようなパスが存在します/var/lib/tomcat6/webapps/ROOT/images/saved_images/
。
アプリケーションには次のコードがあります。
File file = new File("/var/lib/tomcat6/webapps/ROOT/images/saved_images/abc.jpg");
boolean fileExists = file.exists();
コードが実行されると値fileExists
は true になりますが、 のように参照されるとページに画像が表示されませんimages/saved_images/abc.jpg
。
/var/lib/tomcat6/webapps/ROOT/images
と内の画像の権限は/var/lib/tomcat6/webapps/ROOT/images/saved_images
同じです (所有者とグループは tomcat6 で、これは war にデプロイされた他のファイルと同じです)。sym リンクを削除し、 saved_images ファイルを同じ名前のディレクトリに配置すると、画像が表示されます。ディレクトリが sym リンクの場合、ファイルを実際のディレクトリにコピーせずに、ページにこれらの画像を表示するにはどうすればよいですか?
答え1
ファイルに次の内容を追加してみましたかcontext.xml
?
<Context path="/foobar" allowLinking="true">