Wildfly 14-显式依赖项

时间:2018-12-08 10:22:22

标签: maven dependencies wildfly deployment-descriptor

我有两个EAR( ear01-0.0.1-SNAPSHOT.ear ear02-0.0.1-SNAPSHOT.ear )应用程序,它们都使用一个公共库( common-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>

每个EAR的 jboss-deployment-structure.xml 声明了对上述公共库的依赖:

<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>

0 个答案:

没有答案