2010-07-06 64 views
2

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

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通过粘贴以下commands

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


堆栈跟踪太大它张贴在这里,所以请按照link来查看。


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

+1

我不使用Linux,但我从来不必修改Tomcat部署Spring的权限。你究竟做什么需要这个?在Windows上,Spring部署没有必要这样做。 – duffymo 2010-07-06 10:20:03

+1

我有几个基于Spring的webapps在Linux上的Tomcat上运行。不需要改变这种性质的配置。 – Kris 2010-07-06 10:45:41

+0

您使用哪种分布? – 2010-07-06 10:47:30

回答

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。

这段时间对我来说很合适。

问候。

相关问题