2015-09-02 4 views
1

Я хочу сделать некоторые операции с файлами (копия) в stateless EJB Method. Я знаю, что не рекомендую это делать. Но это может быть возможно для некоторых специальных решений EJB. Что лучше для Wildfly?Файловые операции с реализацией Wildly Ejb

EDIT Некоторые тревожные старые ссылки:

"Sun blueprint: EJB Restrictions"

EJB Bad Practices: Use of Java I/O

Stackoverflow

ответ

4

Что самое лучшее для Wildfly?

Просто выполняйте операцию с файлом (серьезно). Это не так: если у вас установлен диспетчер безопасности, чтобы вы этого не делали.

И EJB без гражданства не отличается от многих других типов методов в bean-компонентах Java EE. Это не так, как некоторые люди думают, что это запрещено в EJB-методах, но допускается в методах CDI bean. Это просто не тот случай.

Существует некоторая старая информация, где спецификация говорит, что «EJB не разрешено». Но на самом деле это означало, что Java EE не разрешено. В то время EJB рассматривался как эквивалент Java EE, так что это происхождение этой широко распространенной путаницы.

Позже этот миф начинал свою собственную жизнь, когда люди мечтали о сценариях, где, предположительно, разрешено делать IO в сервлетах, но не от EJB, поэтому они разработали всевозможные сумасшедшие архитектуры для делегирования ввода-вывода (или потоков , еще один фаворит) от EJB до сервлета. Абсолютно смехотворно!

Ограничение (как упомянуто выше, предназначенное для всего Java EE, а не только EJB) также было слишком горячо. Просто нет причин, чтобы его абсолютно запретить.

Некоторые из ответов, которые вы цитируете, являются более ретроактивными. Люди просто придумывают причины для того, чтобы каким-то образом оправдать свой мир, хотя причина и правило не совпадают.

По этой причине правило было удалено из спецификации EJB.

Правильно, в текущем спецификаторе EJB вы больше не найдете, что запрещено использовать IO из EJB (который, опять же, никогда не хотел сказать «EJB», но должен быть прочитан как «Java EE»).

См:

Конечно, как и многие другие вещи, вы можете или не должны быть осторожными при использовании IO, но это никак не связано с Java EE или EJB и выполняется практически для любого приложения и в большей степени зависит от типа ввода-вывода, типа приложения, которое вы кодируете, и вашей ситуации.

Два маленьких крайних примеров:

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

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

Между этими двумя буквами бесконечное количество вариаций. У нас было, например, более крупное корпоративное приложение, которое выполнило IO во внешнюю папку с Singleton с очень контролируемым и определенным образом. Приложение обслуживало миллионы пользователей при интенсивной нагрузке, и никогда не возникало проблем с IO. Поэтому даже «предприятие» и «транзакционное» необязательно должны означать «no IO». Это действительно зависит.

+0

Благодарим вас за ответ. Так что на практике безопасно использовать файлы на WildFly из EJB? Некоторая старая информация о EJB меня смущает. Пожалуйста, уточните обновление – Tony

+0

@Tony см. Обновление –

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

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