我有一个结构如下的 ear 文件,我正试图在 WildFly 17 中部署它:
my-application-ear.ear
|-- my-ejb-jar-1.jar
|-- my-ejb-jar-2.jar
|-- lib/
|-- my-library-jar.jar
|-- ...
|-- META-INF
|-- MANIFEST.MF
|-- jboss-deployment-structure.xml
my-library-jar 包含 META-INF/services 下标准类加载器默认不加载的内容。
我正在尝试使用 services 属性来允许类加载器访问 META-INF/services 目录,但我找不到将库 jar 指定为模块或包含 META-INF/ 的资源的方法服务。
有没有办法做到这一点?这是我尝试过的 [其中一些] 事情的一个例子:
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.3">
<deployment>
<dependencies>
<!-- snip! -->
...
<!-- These don't work - looking for a way to load lib jar files with services. -->
<module name="my-library-jar.jar" services="import" />
<module name="lib.my-library-jar.jar" services="import" />
<module name="lib/my-library-jar.jar" services="import" />
<module name="deployment.my-application-ear.ear.my-library-jar.jar" services="import" />
<module name="deployment.my-application-ear.ear.lib.my-library-jar.jar" services="import" />
<module name="deployment.my-application-ear.ear/my-library-jar.jar" services="import" />
<module name="deployment.my-application-ear.ear/lib/my-library-jar.jar" services="import" />
<module name="deployment.my-application-ear.ear.parent.my-library-jar.jar" services="import" />
</dependencies>
</deployment>
</jboss-deployment-structure>
如果可能的话,我宁愿使用部署描述符,而不是修改清单文件的 Dependencies 属性。
这个应用程序非常大并且在 JBoss 5.1 中运行良好,但是证明它的结构很难用新的类加载器来描述。