Нет необходимости использовать jboss-deployment-structure.xml
, так как ссылка на библиотеки JAR в EAR охватывается спецификацией платформы Java EE ( JSR 366 )
Фактически, он должен работать с вашей текущей структурой EAR, удаляя jboss-deployment-structure.xml
Раздел EE.8.2.1 Связанные библиотеки предоставляет несколько способов сделать библиотеки JAR доступными для модулей.
- Вы можете добавить ссылку на файл JAR с записью Class-Path в файле META-INF / MANIFEST.MF модуля, используя библиотеку (не EAR).
Например, если person-ejb.jar зависит от lib / Common.jar и lib / BugReport.jar, вы можете добавить:
Class-Path: lib/Common.jar lib/BugReport.jar
в META-INF / MANIFEST.MF внутри файла de Person -ejb.jar. То же самое для Person-web.war
Файлы JAR, помещенные в
<library-directory>
EAR, становятся доступными для всех модулей. И
<library-directory>
по умолчанию является каталогом lib, поэтому, поскольку у вас есть и Common.jar, и BugReport.jar внутри каталога lib, они уже должны быть доступны для Person-ejb.jar и Person-web.war.
Вы можете предоставить дескриптор развертывания application.xml
в каталоге META-INF файла EAR и переопределить <library-directory>
. Пример файла application.xml
для вашего EAR будет:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_8.xsd" version="8">
<display-name>Person.ear</display-name>
<module>
<ejb>Person-ejb.jar</ejb>
</module>
<module>
<web>
<web-uri>Person-web.war</web-uri>
<context-root>/person</context-root>
</web>
</module>
<library-directory>lib</library-directory>
</application>