2010-07-06 2 views
2

나는 Tomcat에서 사용할 웹 애플리케이션을 만들었다. 그것은 봄에 달려있다. 나는 그것을 액세스하려고 할 때 다음과 같은 예외가 있습니다스프링 애플 리케이션을위한 톰캣 설정

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

나는 바람둥이의 문서를 읽고, 내가 보안을 구성 할 필요가 있음을 발견했다. 나는
"/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 

. 프로젝트가 지정된 위치에 있습니다.

내가 뭘 잘못하고 있니?

서버 lib 폴더에 추가로 jar 파일을 복사하지 않고 서버에서 가능한 한 수정하는 것이 좋습니다.


톰캣 버전 = 아파치 톰캣/6.0.20

봄 버전 = 3.0.1.RELEASE


스택 추적은 여기에 게시 너무 큰 , 그러니 제발, link을보고 따라 가세요.


아무도 도와 줄 수 있습니까? 추가하려면 Apache Geronimo에서 예외없이 실행됩니다.

+1

저는 Linux를 사용하지 않지만 Spring을 배포하기 위해 Tomcat 권한을 수정하지 않았습니다. 이게 정확히 뭐하는거야? Windows에서 Spring을 배포 할 때는 이러한 작업이 필요하지 않습니다. – duffymo

+1

저는 Linux에서 Tomcat으로 실행되는 여러 Spring 기반 웹 응용 프로그램을 가지고 있습니다. 이러한 특성의 구성 변경은 필요하지 않습니다. – Kris

+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을 편집 할 수 있습니다.

나는 얼마 전에 저에게 도움이되었습니다.

감사합니다.

관련 문제