2016-11-28 5 views
1

Я использую itextpdf и пытается записать файл с помощью:GWT Java itextpdf - java.security.AccessControlException

public class ScoutTranscript { 

//static String filePath = System.getProperty("user.home") + "\\Desktop\\ScoutTranscript.pdf"; 
static String filePath = "/ScoutTranscript.pdf"; 
private static String FILE = filePath; 

Однако в журнале я получаю ошибку:

java.security.AccessControlException: access denied ("java.io.FilePermission" "/ScoutTranscript.pdf" "write") 
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372) 
at java.security.AccessController.checkPermission(AccessController.java:559) 
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) 
at java.lang.SecurityManager.checkWrite(SecurityManager.java:979) 
at java.io.FileOutputStream.<init>(FileOutputStream.java:209) 
at java.io.FileOutputStream.<init>(FileOutputStream.java:110) 
at org.AwardTracker.server.ScoutTranscript.main(ScoutTranscript.java:44) 
at org.AwardTracker.server.MySQLConnection.scoutTranscript(MySQLConnection.java:17126) 

Как следует Я создаю filePath, пожалуйста?

+0

У вас, похоже, нет разрешений на запись в корневой каталог, где указаны ваши пути к файлу. – mkl

+0

Где находится ваш код? Tomcat или любой другой сервер? Вам необходимо предоставить набор разрешений для этого решения. Это указатель на такую ​​проблему, ссылка [здесь] (https://coderanch.com/t/648429/Tomcat-java-security-AccessControlException-access) –

+0

Кстати, с учетом кода и stacktrace вы показываете проблему похоже, не имеет отношения к нему или к gwt. Таким образом, я бы удалил эти теги. С другой стороны, может быть задействован ваш сервер веб-приложений (tomcat или любой другой). Таким образом, вы можете добавить теги соответствующим образом. – mkl

ответ

1

Если вы используете Tomcat, вам может потребоваться добавить следующие параметры разрешений в ваш catalina.policy, чтобы устранить проблему.

grant codeBase "file:${catalina.home}/webapps/ApplicationName/-" { 
    permission java.security.AllPermission; 
}; 

Для получения более подробной информации, пожалуйста, обратитесь к this. Рассмотрите возможность изменения пути по пути, который вы используете.

@ Glyn, @mkl прав, говоря, что эта проблема не связана ни с GWT, ни с iText и, следовательно, сбрасывает эти два тега.

+0

Это замечательно. Я нашел в Eclipse -> Properties -> Java Build Path, что мой Tomcat находится в папке C: \ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ conf. Итак, в конце Catalina.policy я просто добавляю: grant codeBase "file: $ {catalina.home}/webapps/ScoutTranscript/-" { разрешение java.security.AllPermission; }; (ScoutTranscript - это имя класса). Это верно? Это будет компилироваться и включаться в войну? Я хочу быть абсолютно уверенным, так как я могу только проверить это на производстве, и я не хочу иметь большой разрыв в моей безопасности. – Glyn

+0

Путь должен быть местом, где вы пытаетесь записать файл –

+0

Извините, для меня это не имеет смысла. Нет пути только для имени приложения. Правильно ли значение «ScoutTranscript», в данном случае, заменить «ApplicationName» на? Где путь, пожалуйста? – Glyn

 Смежные вопросы

  • Нет связанных вопросов^_^