Запрещено ли использование Class.forName внутри контейнера J2EE в целом и в частности для weblogic? - PullRequest
0 голосов
/ 07 сентября 2010

У меня проблема с производительностью при первом вызове API для моих приложений J2EE.Поэтому я хотел сделать Class.forName для предварительной загрузки классов во время инициализации приложения.Но я слышал, что это запрещено реализацией стандарта J2EE / BEA (я могу быть совершенно неправ).Это так?Существуют ли другие ограничения для использования forName в контейнере J2EE.

1 Ответ

1 голос
/ 07 сентября 2010

У меня проблема с производительностью при первом вызове API для моих приложений J2EE.Поэтому я хотел сделать Class.forName для предварительной загрузки классов во время инициализации приложения.

Итак, в основном, вы просто хотите переместить накладные расходы :) Я не вижу разницы (может быть, опыт пользователя)но хорошо, почему бы и нет.

Но я слышал, что это запрещено реализацией стандарта J2EE / BEA (я могу быть совершенно неправ).Это так?Существуют ли другие ограничения на выполнение forName в контейнере J2EE.

Контекст немного неясен, но, насколько мне известно, это не так.И это на самом деле то, что делает приложение Pet Store.Цитирование EJB-ограничения :

Почему все ограничения на создание загрузчиков классов и перенаправление потоков ввода, вывода и ошибок?

Загрузка классов разрешена, ноСоздавать пользовательские загрузчики не по соображениям безопасности.Эти ограничения существуют, потому что EJB-контейнер отвечает за загрузку классов и контроль ввода / вывода.Разрешение EJB выполнять эти функции мешало бы правильной работе Контейнера и представляет угрозу безопасности.

В магазине Java Pet Store есть код, который загружает классы изнутри класса корпоративного компонента, используя Class.forName(), в StateMachine .

Но почему бы вам просто не попробовать?

Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...