我已经构建了用于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:
来安装Tomcatsudo 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上没有例外地执行它。
答案 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。
不久前,这对我有用。
的问候。