3

Tomcat で使用する Web アプリケーションを作成しました。スプリング次第です。アクセスしようとすると、次の例外があります。

java.security.AccessControlException: access denied (java.lang.RuntimePermission createClassLoader)

tomcat のドキュメントを読んだところ、セキュリティを構成する必要があることがわかりました。
「/usr/share/tomcat/conf/catalina.policy」に次の行を追加しました。

grant codeBase "file:${catalina.home}/webapps/MyProject/-" {
    permission java.lang.RuntimePermission;
};

しかし、それは役に立ちませんでした。追加するには、次のコマンドを貼り付けて Tomcat をインストールしました。

sudo apt-get install tomcat6
cd /usr/share/tomcat6
sudo ln -s /var/lib/tomcat6/conf conf
sudo ln -s /etc/tomcat6/policy.d/03catalina.policy conf/catalina.policy
sudo ln -s /var/log/tomcat6 log
sudo chmod -R 777 /usr/share/tomcat6/conf

サーバーを再起動しました。プロジェクトは指定された場所に存在します。

私は何を間違っていますか?

追加のjarをサーバーのlibフォルダーにコピーせずに、サーバー上の変更をできるだけ少なくしたいと思います。


じぶんの

Tomcat バージョン = Apache Tomcat/6.0.20

春のバージョン = 3.0.1.RELEASE


スタック トレースは大きすぎてここに投稿できません。リンクをたどって確認してください。


誰でも私を助けることができますか?追加するには、Apache Geronimo で例外なく実行されます。

4

1 に答える 1

0

私はそれらのシンボリックリンクを使用しません。代わりに、$CATALINA_BASE/webapps (/etc/init.d/tomcat6 をチェックしてください) にデプロイします。次に、ポリシー ファイル (/etc/tomcat6/policy.d/03catalina.policy) で:

grant codeBase "file:${catalina.base}/webapps/MyProject/WEB-INF/lib/-" {
    permission java.lang.RuntimePermission "createClassLoader";
};

別のオプションとして、/etc/tomcat6/policy.d/04webapps.policy を編集できます。

それは少し前に私のために働いた。

よろしく。

于 2010-07-09T20:03:31.060 に答える