Bonjour à tous.
Je suis actuellement en train de développer une servlet qui est censée être exécutable à la fois sous Windows et sous Linux. J'ai commencé par coder sous Windows, avec Eclipse, et tout marche à la perfection. J'ai fait en sorte dans mon code de séparer la partie Windows de la partie Linux afin de ne pas etre embêté lors du developpement. (Je recupère just le nom de l'os et je match avec une regex... enfin passons, cela marche très bien).
J'ai dans le dossier de ma servlet créé un dossier Temp dans lequel j'ecris des fichiers. Quand j'exécute ma servlet sous linux (Tomcat 5.5, sur Ubuntu 8.04), lorsque j'essaye de savoir si je peux ecrire dans ce dossier, Tomcat m'insulte en me disant :
java.security.AccessControlException: access denied (java.io.FilePermission /var/lib/tomcat5.5/webapps/SizeGenerator_v2/Temp write)
java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
java.security.AccessController.checkPermission(AccessController.java:546)
java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
java.lang.SecurityManager.checkWrite(SecurityManager.java:962)
java.io.File.canWrite(File.java:711)
SizeGenerator.processRequest(SizeGenerator.java:105)
...
Bien entendu, j'ai essayé manuellement de donner tous les droits dans le dit-dossier (chmod 777 Temp/)... Sans aucun effet.
En cherchant sur internet, j'ai vu qu'il s'agirait peut-etre du Security Manager, j'ai donc rajouté dans mon petit fichier de configuration (catalina.policy) la ligne suivante :
1 2 3
| grant {
permision java.io.FilePermission "file:/blablabla_mon_lien/-" "read, write, delete";
}; |
Mais encore une fois, cela n'a pas marché. Et je suis donc à court d'idée.
Si certains d'entre vous ont des pistes pour m'aider, je suis preneur.
Merci de m'avoir lu.
Partager