3

我已经构建了用于 Tomcat 的 Web 应用程序。这取决于春天。尝试访问它时出现以下异常:

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

我阅读了tomcat docs,发现我需要配置安全性。
我在“/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 回答