Wildfly 14 - явные зависимости - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть два приложения EAR ( ear01-0.0.1-SNAPSHOT.ear , ear02-0.0.1-SNAPSHOT.ear ), и оба они используют общую библиотеку( общий 0.0.1-SNAPSHOT.jar ).Я решил убрать эту общую часть и добавить ее в качестве модуля в Wildfly 14 , но даже с дескриптором развертывания я получаю исключение при развертывании EAR:

java.lang.NoClassDefFoundError: Failed to link ki/wildfly_deps/ejbs01/EchoBean01

Я использовал этот CLIчтобы добавить новый модуль:

module add --name=ki.wildfly_deps.common --resources=common-0.0.1-SNAPSHOT.jar

и JAR теперь находится в

$JBOSS_HOME/modules/ki/wildfly_deps/common/main

1.ВОПРОС

Этот JAR-файл не должен находиться в папке

$JBOSS_HOME/modules/system/layers/base/ki/wildfly_deps/common/main

рядом с другими модулями?

После добавления модуля module.xml выглядит следующим образом:

<?xml version='1.0' encoding='UTF-8'?>
<module xmlns="urn:jboss:module:1.1" name="ki.wildfly_deps.common">
    <resources>
        <resource-root path="common-0.0.1-SNAPSHOT.jar"/>
    </resources>
</module>

jboss-deploy-structure.xml из каждого EAR объявляет зависимость от вышеуказанной общей библиотеки:

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<deployment>
    <dependencies>
        <module name="ki.wildfly_deps.common" />
    </dependencies>
</deployment>

2.ВОПРОС

Должен ли я указать пакет, который должен быть импортирован из общего модуля?

<jboss-deployment-structure
xmlns="urn:jboss:deployment-structure:1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<deployment>
    <dependencies>
        <module name="ki.wildfly_deps.common" //>
            <imports>
                <include path="META-INF**" />
                <include path="ki.wildfly_deps.common**" />
            </imports>
        </module>
    </dependencies>
</deployment>

...