2014-02-06 2 views
2

Чтения документации 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

  1. JBoss EAP 6.1.0.GA (AS 7.2.0.Final-RedHat-8)
  2. JDK 6

ответ

0

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

  • В первом сценарии упакованные библиотеки загружаются в тот же загрузчик классов, что и ваше приложение.

  • Во втором сценарии упакованные библиотеки загружаются в отдельный модуль и загрузчик классов.

Вышеуказанные средства, что вопрос развертывания вы были с Ф.О. не должны быть связаны с загрузкой классов старшинства они также могут быть связаны с загрузкой класса изоляции.

Также Jboss и EAP уже поставляются с предварительно упакованной реализации JSF, и вы можете испытывать столкновения из-за несовпадения версий

Если вы хотите заменить реализацию по JSF по умолчанию на JBoss лучший вариант, чтобы сделать это будет заключались в том, чтобы реализовать новую реализацию JSF в статическом модуле, как и по умолчанию, и загружать Jboss по требованию.

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