WebSphere поставляется с родительским последним и родительским первым. Является ли этот Java EE совместимым? Поддерживается ли это всеми серверами приложений, совместимыми с Java EE 5?Стандарт загрузки классов Java EE
ответ
я сделал свое собственное исследование (проходя через спецификации и несколько блогов) и ниже, что я понял
EAR
Спецификация не определяет или санкционировать как загрузчики классов должны работать в пределах EAR. Вместе с тем она определяет, что
- должен быть в контексте загрузчика классов потоков для выполнения загрузки классов
- Могло быть иерархическим класс механизмом загрузки для решения классов (поставщики серверов приложений могут свободно осуществлять в зависимости от того, как они выбирают)
- загрузчик класса верхнего уровня (WAR/EAR) МОЖЕТ делегировать загрузчикам класса низкого уровня (например, Bootstrap, расширение и т. Д.). Это в соответствии с моделью делегирования класса J2SE погрузчик (PARENT_FIRST в WAS)
WAR
спецификации Servlet определяет и предписывает поддержку в PARENT_LAST (т.е. WAR/WEB-INF/классы и WAR/web-inf/lib имеют приоритет над библиотеками, которые поставляются с сервером приложений). Но это только для модулей WAR. В этом случае спецификация Servlet расходится со стандартной моделью делегирования J2SE PARENT_FIRST.
Справочник
Spec: сервлетов 2.3, Раздел: 9.7.2 Web-приложений Загрузчик классов
Spec: Java EE 5, Раздел: EE.6.2.4.7 Контекст загрузчик классов
приложение Специфические сервера
Интересно, однако, что большинство основных серверов приложений поддерживают некоторый механизм отключения делегирования для изоляции е приложение от сервера приложений, если это необходимо (из-за конфликтов или иным образом): WebSphere - "родитель-последний", GlassFish - <class-loader delegate="false">
, JBoss - java2ParentDelegation=false
Джеронимо - <java2-delgation-model>false</java2-delegation-model>
Хорошая информация. Я изучал тот же вопрос и пришел к аналогичным выводам. Остается еще один вопрос: рекомендуется ли использовать параметр «Родительский последний»? Я думаю, это будет так, потому что ваше приложение более портативно; вы не зависите от libs Appserver. Вы достигаете изоляции приложения. Я не вижу людей, рекомендующих так или иначе. Вы столкнулись с такими рекомендациями по лучшей практике?
«Я бы подумал, что это будет так, потому что ваше приложение более портативно, вы не зависите от библиотек Appserver. Вы достигаете изолированности приложений». ---- Он может или не может работать так как нет стандарта, предусмотренного спецификацией. Например, http://stackoverflow.com/questions/4097567/jboss-and-different-versions-of-hibernate –
Вот еще один сценарий с попыткой использования JSF 2.0 с WAS 7 и используя PARENT_LAST для EAR и WAR. Все еще пытаюсь использовать myface impl, с которым он поставляется в комплекте. Конечно, он смог решить эту проблему, обновив EL impl для использования, но дело в том, что вы не можете гарантировать, что все будет работать, даже если вы измените политику делегирования: http://stackoverflow.com/questions/3214373/websphere-7-jsf- 2-0-и-загрузчиков классов –
- 1. Количество классов в Java EE framework?
- 2. Прогрессивный стандарт загрузки
- 3. Java: звездочка для загрузки классов
- 4. Java Reflection для загрузки классов
- 5. Java EE TCP Server
- 6. стандарт для загрузки рельсов image
- 7. Архитектура проекта Java EE
- 8. Начало Java EE
- 9. Упаковка приложения Java EE
- 10. Как установить Java EE?
- 11. инъекционное Java EE ресурсов в динамически загружаемых классов
- 12. Java EE: разделение классов сущностей между сервером и клиентами
- 13. Диаграммное представление классов - Есть ли стандарт?
- 14. Инструмент визуализации/анализа Java-классов для загрузки
- 15. Массивный рефакторинг весной Java EE
- 16. Компоненты загрузки классов
- 17. AngularJS - Безопасность Java EE REST
- 18. Java EE интерфейс условных инъекционные
- 19. Имя пакета - веб-приложение Java EE
- 20. Ввод/вывод потока Java EE
- 21. Использование спящего режима в Java EE приложение
- 22. Информация о Java/Java EE
- 23. Ядро Java или Java EE?
- 24. Примеры проектов Java EE с использованием шаблонов проектирования Java EE
- 25. Разница между Java EE 7 и Java EE 6
- 26. Java EE: использует ли Java EE 7 собственный код?
- 27. Java PKCS11 Стандарт для токенов Crypto
- 28. Java EE среда разработки?
- 29. Java EE и JDK
- 30. Eclipse Java EE plugin
Ницца. В Glassfish это btw ' ' в 'sun-web.xml', чтобы отключить делегирование. См. Также http://docs.sun.com/app/docs/doc/819-3659/beadf?l=ru&a=view (фотография) и http://docs.sun.com/app/docs/doc/821 -1752/beade? L = en & a = view –
BalusC