он находится в общей папке (\\ anetworkmachine \ myapp \ test), смонтированной как / mntnfs / myapp / test / на сервере linux. Я могу открывать, создавать и изменять файлы в папке Windows. Не знаю учетные данные для доступа к смонтированной папке
я ошибка заголовка поста при попытке записать файл в папку окна, смонтированную в системе Unix. Я разработал веб-сервис, который работает внутри Tomcat 6 на ОС Linux и должен писать в сетевой папке Windows. Системные администраторы смонтировали его на сервере Linux и не имеют проблем с созданием и изменением файла на нем. Когда я пытаюсь выполнить опубликованный код, я получаю следующее исключение:
Разрешение отклонено java.io.IOException: разрешение отклонено в java.io.UnixFileSystem.createFileExclusively (собственный метод) в java.io.File.createNewFile (File.java:850)
Странно то, что он, похоже, связан с методом File.createNewFile в сетевой папке, фактически служба может без проблем записывать данные в локальную файловую систему, как в режиме отладки (компьютер, который я использую для разработки службы), так и в tomcat. Папка системных администраторов предоставила мне на сервере linux. Файл создается, но он пуст, и запись журнала, следующая за методом создания, не печатается. Более того, если я использую простой выходной поток для создания и записи файла, у меня нет проблем.
Я не могу найти какое-либо объяснение об исключении в Интернете. Так как я не очень опытен с Java, я хотел бы понять, почему я получаю эту ошибку. Я использую это неправильно? Это ошибка библиотеки? Я скучаю, чтобы передать какой-то параметр? Как уже говорилось, я решил проблему с помощью простого выходного потока, это вопрос для улучшения моего понимания Java.
FileOutputStream fos = null;
try{
log.info(String.format("file length: %s",streamAttach.length));
log.info(String.format("check File : %s",filename));
File f = new File(filename);
if(f.exists())
...
boolean done= f.createNewFile();//here comes the exception
//nothing of the following happens
if(!done)
throw new NWSException("error creating file");
log.info(String.format("file %s creato", nomeFile));
заранее спасибо за любой ответ