Что самое лучшее для 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». Это действительно зависит.
Благодарим вас за ответ. Так что на практике безопасно использовать файлы на WildFly из EJB? Некоторая старая информация о EJB меня смущает. Пожалуйста, уточните обновление – Tony
@Tony см. Обновление –