Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Не удаётся работать с файлами из Сервлета


Автор: DOKA 25.10.2007, 11:37
Доброго времени суток!

Есть некий сервлет, который работает с файлами с своём-же WEB-INF/
Например, логи ведутся в WEB-INF/log/.
Проблема в следующем: при попытке создать файл/диру сервлет выдаёт сообщение с ошибкой:

Код

Oct 25, 2007 12:11:32 PM org.apache.catalina.core.ApplicationContext log
SEVERE: StandardWrapper.Throwable
java.security.AccessControlException: access denied (java.io.FilePermission /var/lib/tomcat5.5/webapps/Servlet/WEB-INF/log write)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)
    at java.security.AccessController.checkPermission(AccessController.java:427)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at java.lang.SecurityManager.checkWrite(SecurityManager.java:962)
    at java.io.File.mkdir(File.java:1119)
    at java.io.File.mkdirs(File.java:1148)
    ...


В Windows всё работает нормально, проблема возникла только при попытке запустить всё под Linux. В качестве сервера и там и там использую TomCat 5.5 с родной, Sun'овской Java.
Даже права под линуксом проставил
Код

chown tomcat55:root Servlet -R
chmod 777 Servlet -R

т.е. полные права на запись кем угодно. И всё равно облом :(

Подскажите, что можно сделать?

Автор: ekr 25.10.2007, 11:50
При запуске jvm ей можно задать политики безопасности.
Эти политики оформляются в виде т.н. security policy file и при запуске с помощью ключика он jvm-у указывается.
Посмотрите, как запускается tomcat во втором случае - на linux.

Может быть, в этом все дело.

Автор: DOKA 25.10.2007, 12:13
Цитата(ekr @ 25.10.2007,  11:50)
При запуске jvm ей можно задать политики безопасности.
Эти политики оформляются в виде т.н. security policy file и при запуске с помощью ключика он jvm-у указывается.
Посмотрите, как запускается tomcat во втором случае - на linux.

Может быть, в этом все дело.

catalina.policy почти идентичны (немного различаются комментарии) - сравнивал в WinMerge.
В Windows я специально не редактировал файл полиси: сервлет нормально ставится на любую другую машину и без редактирования оного.

Автор: Kangaroo 25.10.2007, 12:19
http://tomcat.apache.org/tomcat-5.5-doc/security-manager-howto.html почитай

Автор: DOKA 25.10.2007, 13:07
Цитата(Kangaroo @ 25.10.2007,  12:19)
http://tomcat.apache.org/tomcat-5.5-doc/security-manager-howto.html почитай

Thx!

Сделал grant allPermissions моему сервлету, заработало! Странно только что в Винде и в Линуксе дефолты разные, теперь придётся в RPM добавлять скрипт для редактирования этих самых полиси...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)