Tomcat配置Spring应用程序

3

我已经构建了一个在Tomcat中使用的Web应用程序。它依赖于Spring框架。当我尝试访问它时,我遇到了以下异常:

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

Spring版本= 3.0.1.RELEASE


堆栈跟踪太长了,在此处发布不了,请单击链接查看。


有人能帮我吗?另外,它在我的Apache Geronimo上执行时没有异常。


1
我不使用Linux,但我从未需要修改Tomcat权限来部署Spring。你到底在做什么需要这样做?在Windows上进行Spring部署时不需要这样做。 - duffymo
1
我有几个基于Spring的Web应用程序在Linux上的Tomcat中运行。没有需要进行这种配置更改。 - Kris
你使用的是哪个发行版? - Marc van Kempen
请显示完整的堆栈跟踪。 - axtavt
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。

这在一段时间前对我有用。

敬礼。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接