Сантош дал правильный ответ, но позвольте мне прояснить некоторые вопросы, касающиеся weblogic и jboss.
JBOSS и WebLogic имеют разные механизмы загрузки классов. Позвольте мне уточнить:
<сильный>1. зачем манифестировать?
Ответ Java-Oracle: вам может понадобиться ссылаться на классы в других файлах JAR из файла JAR.
<сильный>2. зачем манифестировать в приложении EAR/WAR?
Ответ Oracle Weblogic: WebLogic Server поддерживает дополнительные пакеты, как описано в Спецификации Java EE 5.0, Раздел 8.2 Поддержка дополнительных пакетов, с управлением версиями, описанным в разделе Управление версиями дополнительных пакетов. Дополнительные пакеты предоставляют функции, аналогичные библиотекам Java EE, что позволяет легко совместно использовать один файл JAR в нескольких приложениях. Как и в случае с библиотеками Java EE, необязательные пакеты должны быть сначала зарегистрированы в WebLogic Server путем развертывания связанного файла JAR в качестве дополнительного пакета. После регистрации пакета вы можете развернуть модули Java EE, которые ссылаются на пакет в своих файлах манифеста.
Необязательные пакеты отличаются от библиотек Java EE тем, что на дополнительные пакеты можно ссылаться из любого модуля Java EE (архив EAR, JAR, WAR или RAR) или каталога развернутого архива. На библиотеки Java EE можно ссылаться только из действительного корпоративного приложения.
[...]
Любое приложение или модуль Java EE может ссылаться на необязательный пакет (с помощью META-INF/MANIFEST.MF), тогда как только корпоративные приложения и веб-приложения могут ссылаться на общую библиотеку Java EE (с помощью weblogic-application.xml или weblogic.xml).
<сильный>3. тогда почему мы не должны объявлять java-ee-api.jar, jsf, jsp,...
Ответ Jboss. В следующей таблице перечислены модули, которые автоматически добавляются в развертывания в качестве зависимостей, а также условия, вызывающие зависимость.
Implicit_Module_Dependencies
<сильный>4. не все модули загружаются JBOSS?
Ответ Jboss: в этой главе речь пойдет о том, как приложения, упакованные в jar-файлы, могут объявить, что они зависят от одного или нескольких модулей:
Dependencies: oracle.sql, another.module.with.version:1.0
Информация о модуле манифеста
4.1 альтернативно определяют jboss-deployment-structure.xml
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="oracle.sql" export="TRUE" />
</dependencies>
</deployment>
</jboss-deployment-structure>
Добавить явную зависимость модуля к развертыванию
4.2 с maven
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
<manifestEntries>
<Dependencies>org.javassist, org.apache.velocity</Dependencies>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
см.: Создание записей MANIFESTMF с помощью Maven
см.: Как вы создаете зависимости модулей в MANIFEST.MF для JBoss AS 7 с помощью maven?
<сильный>7. почему мы не получили эту важную информацию раньше?
Благодаря новой организационной модели JBOSS 7/8 отказывается от известной иерархии загрузки классов и переключается на более простую модель, основанную на использовании модульных блоков (Проект модулей JBoss) . Введение архитектурных модулей (в дополнение к предстоящему внедрению в JDK, которое в настоящее время очень популярно благодаря внешним проектам, таким как OSGi) фактически расширяет модель, используемую для упаковки приложений Java EE; тогда модуль может быть библиотекой, набором классов или, в более общем смысле, набором ресурсов, связанных с одним загрузчиком классов: поэтому, в отличие от прошлого, когда загрузчик классов был собран в рамках иерархической организации набора классов, точка здесь точка зрения совершенно обратная.
см.: Загрузка классов в WildFly
person
venergiac
schedule
15.08.2014