Можно ли получить доступ к файловой системе в EJB?

Допустимо ли использовать типы из java.io и java.nio для доступа к файловой системе и управления файлами в EJB?


person cassiomolin    schedule 07.10.2014    source источник


Ответы (1)


Нет, вам не разрешено это делать, потому что, если приложение в какой-то момент будет кластеризовано, вы никогда не узнаете, в каком месте были сохранены ваши файлы. Таким образом, манипулирование файлами в среде Java EE является довольно небезопасной операцией.

Способ сделать это безопасно, вероятно, состоял бы в том, чтобы иметь службу в JNDI, которая позаботится о сериализации вашего объекта - см. Пример

ByteArrayOutputStream baos= new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(myObj);

new InitialContext().bind("path/to/FileManipulator", baos.toByteArray());

См. также этот ответ для дальнейшего объяснения. Также здесь есть статья, в которой описывается, что говорится в спецификации об использовании java.io в EJB.

person Petr Mensik    schedule 07.10.2014