在wildfly-swarm ejb-jar部署

时间:2018-02-20 13:47:34

标签: wildfly-swarm

我试图为仅包含MDB的ejb-jar部署创建一个wildfly swarm jar。

bean onMessage方法正在使用项目依赖项中包含的第三方库。

生成的超级jar包含库但由于某种原因,当我尝试使用该库时,我得到ClassNotFound异常。

如果我们改变包装类型的简单" jar"战争"战争"一切都按预期工作。

将第三方依赖项添加到wildfly swarm的简单ejb-jar部署的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我不确定什么是“正确”的解决方案。对于我来说,荆棘软件包(以前是野生蜂群)总是需要作为WAR,并且即使没有使用,也总是需要包含undertow和/或jaxrs,这似乎让我感到有些奇怪。

正如上面的第一条评论所述,有可能在JAR程序包中包含第三方依赖项。

在我的Maven项目的src/main/resources中,我已经添加了子目录modules/com/example/mymodule/main,并且已经在module.xml目录中添加了main

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.example.mymodule">
<resources>
    <artifact name="org.apache.pdfbox:pdfbox:2.0.13" />
</resources>

<dependencies>
    <module name="org.apache.commons.logging"></module>
    <module name="org.apache.commons.io"></module>
    <module name="org.apache.httpcomponents"></module>
</dependencies>
</module>

上面的xml引用了我已包含在POM中的Maven工件。您还可以引用其他模块。

然后我将jboss-deployment-structure.xml添加到src/main/resources/META-INF

<jboss-deployment-structure>
<deployment>
    <dependencies>
        <module name="com.example.mymodule" />
    </dependencies>
</deployment>
</jboss-deployment-structure>

您添加到POM的任何第三方依赖现在都需要添加到module.xml中。我知道这有点痛苦,如果maven插件可以执行一些操作来使它自动化,那将非常好。