我有一个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/services的资源。
有没有办法做到这一点?这是我尝试过的许多方法中的一个例子:
<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中工作得很好,但它的结构很难向新的类加载器描述。
转载请注明出处:http://www.intrusion-fire.net/article/20230329/1225373.html