2010-07-06 4 views
2

J'ai développé une application web pour Tomcat. Cela dépend du printemps. Je l'exception suivante en essayant d'y accéder:Configuration de Tomcat pour l'application Spring

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

J'ai lu tomcat docs, et a trouvé que je dois configurer la sécurité. J'ai ajouté les lignes suivantes à
"/usr/share/tomcat/conf/catalina.policy":

grant codeBase "file:${catalina.home}/webapps/MyProject/-" { 
    permission java.lang.RuntimePermission; 
}; 

Mais il n'a pas aidé. Pour ajouter, j'ai installé Tomcat en collant suivant 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 

Je serveur redémarré. Le projet existe à l'emplacement spécifié.

Qu'est-ce que je fais mal?

Je voudrais vraiment modifier autant de choses sur le serveur que possible, sans copier d'autres fichiers dans le dossier lib des serveurs.


Mon

Tomcat version = Apache Tomcat/6.0.20

version Spring = 3.0.1.RELEASE


La trace de la pile est trop grand pour l'afficher ici , alors s'il vous plaît, suivez link pour le voir.


Quelqu'un peut-il m'aider? Pour ajouter, il est exécuté sans exception sur mon Apache Geronimo.

+1

Je n'utilise pas Linux, mais je n'ai jamais eu à modifier les autorisations Tomcat pour déployer Spring. Que faites-vous exactement qui exige cela? Rien de tel n'est nécessaire sur les déploiements Windows pour Spring. – duffymo

+1

J'ai plusieurs webapps basées sur Spring qui fonctionnent sous Tomcat sous Linux. Aucun changement de configuration de cette nature n'a été requis. – Kris

+0

Quelle distribution utilisez-vous? –

Répondre

0

Je n'utiliserais pas ces liens symboliques. Au lieu de cela, je voudrais déployer à $ CATALINA_BASE/webapps (consultez /etc/init.d/tomcat6). Puis dans le fichier de politiques (/etc/tomcat6/policy.d/03catalina.policy):

grant codeBase "file:${catalina.base}/webapps/MyProject/WEB-INF/lib/-" { 
    permission java.lang.RuntimePermission "createClassLoader"; 
}; 

Une autre option peut être l'édition /etc/tomcat6/policy.d/04webapps.policy.

Cela a fonctionné pour moi il y a un certain temps.

Cordialement.

Questions connexes