1

CentOS 6マシンで実行されているtomcat6サーバーがあり、これまでのところ良好です。私のWebアプリケーションの1つで、ファイルシステムにある外部フォルダーにアクセスするためにコンテキストパラメーターを使用する必要があります.server.xmlを次のように構成しました(<Host>タグの関連部分のみ):

<Context path="/userimages" docBase="/home/someuser/faces/32x32" debug="0" reloadable="true" crossContext="true"/>

サーバーを起動すると、次のエラーが発生します。

java.lang.IllegalArgumentException: Document base /home/someuser/faces/32x32 does not exist or is not a readable directory

フォルダーのアクセス許可について何か読んだので、「32x32」フォルダーと「webapps」フォルダーの両方を777に設定しましたが、まだ機能していません...これを修正する方法はありますか?

PS Windows OS では完全に動作します

4

1 に答える 1

0

CentOS 6 の/etc/tomcat6/context.xmlへのシンボリック リンクである/usr/share/tomcat6/conf/context.xmlにデータを配置することをお勧めします。少なくとも tomcat6 は、再起動時にそのファイルの内容を読み取ります。 、そしてそこからリソースデータをロードすることができました。このファイルは tomcat6 で新しく追加されたようです。

アクセスしているファイルを確認するために strace を使用し、/var/lib/tomcat6/webapps/*/META-INF/context.xmlなどのさまざまなファイルで stat() を実行しますが、実際にそれらのファイルを open() する場所はありません、だから私はそれが内容を読んでいないと確信しています。多分何かのバグ?たぶん架空の未来の機能?

CentOS 6 で動作する Plandora (コンテキストを使用して MySQL データベース接続の詳細を提供) を以下のパッケージ (yum から) で取得することができました。

apache-tomcat-apis-0.1-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-1.61.1.11.11.el6_4.i686
mysql-connector-java-5.1.17-6.el6.noarch
tomcat6-6.0.24-52.el6_4.noarch
tomcat6-servlet-2.5-api-6.0.24-52.el6_4.noarch
tomcat6-el-2.1-api-6.0.24-52.el6_4.noarch
tomcat6-admin-webapps-6.0.24-52.el6_4.noarch
tomcat6-jsp-2.1-api-6.0.24-52.el6_4.noarch
tomcat6-lib-6.0.24-52.el6_4.noarch
tomcat6-webapps-6.0.24-52.el6_4.noarch

他の誰かが Plandora を CentOS 6 で動作させようとしている場合に備えて、シンボリック リンクを作成する必要があります。

 ln -s /usr/share/java/mysql-connector-java.jar /usr/share/tomcat6/lib/
于 2013-05-17T07:52:19.947 に答える