Spring应用程序的Tomcat配置

时间:2010-07-06 10:16:03

标签: java spring tomcat classloader securitymanager

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

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;
};

但它没有帮助。要添加,我通过粘贴commands

来安装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

Spring version = 3.0.1.RELEASE


堆栈跟踪太大,无法在此处发布,因此请按link进行查看。


任何人都可以帮助我吗?要添加,我的Apache Geronimo上没有例外地执行它。

1 个答案:

答案 0 :(得分: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。

不久前,这对我有用。

的问候。