Чтения документации RedHat (https://access.redhat.com/site/documentation/en-US/JBoss_Enterprise_Application_Platform/6/html/Development_Guide/chap-Class_Loading_and_Modules.html) Я обнаружил, что сервер приложений Загрузчик классы имеют список приоритетов при загрузке классов, которые используются, чтобы избежать какого-либо конфликта между нагруженными классами, порядок как нижеКласс Загрузки в Развертываниях в JBoss, как 7
- Неявные зависимости. Это зависимости, которые автоматически добавляются JBoss Enterprise Application Platform 6, например API JAVA EE. Эти зависимости имеют приоритет загрузчика самого высокого класса, поскольку они содержат общие функциональные возможности и API, поставляемые платформой приложений JBoss Enterprise Application. Для получения подробной информации о каждой неявной зависимости обратитесь к разделу 3.7.1 «Неявные зависимостей модулей».
- Явные зависимости. Это зависимости, которые вручную добавляются в конфигурацию приложения. Это можно сделать с помощью файла MANIFEST.MF приложения или нового файла описания jboss-deployment-structure.xml для развертывания JBoss. Обратитесь к разделу 3.2 «Добавление явной зависимости модуля к развертыванию», чтобы узнать, как добавлять явные зависимости.
- Местные ресурсы. Файлы классов, упакованные внутри самого развертывания, например. из каталогов WEB-INF/classes или WEB-INF/lib файла WAR.
- Зависимости между развертываниями. Это зависимости от других развертываний в развертывании EAR. Это может включать классы в каталоге lib EAR или классы, определенные в других банках EJB.
Я пытался проверить этот порядок с помощью JSF веб-приложение (богатые граней) в моем архиве EAR Мое ухо, как показано ниже:
sample.ear
--- sport.war
--- mysql.jar
--- Lib
- Usescase 1: Я добавил JSF банки под веб-приложение (sport.war/WEB-INF/Библиотека): [JSF-апи-2.1.14.jar/JSF-осущ-2.1.14.jar /portletbridge-api-3.1.2.Final.jar/portletbridge-impl-3.1.2.Final.jar], то JBoss сервер начал хорошо, и у меня нет никаких исключений
- Usescase2: Я добавил JSF jars под sample.ear/lib ==> Когда я запускаю сервер jboss, я получаю исключение (кажется, что сервер приложений загрузил модуль JSF, предоставленный jboss Неявные зависимости вместо одного в моем примере .Ухо/Lib)
Я не могу понять, почему в 1srt usescaseКласс Loading Внеочередные не соблюдается, а в 2SD usescase в Class Loading старшинства уважают?
Не могли бы вы разъяснить мне этот момент
ENV
- JBoss EAP 6.1.0.GA (AS 7.2.0.Final-RedHat-8)
- JDK 6