如何指定JBoss WildFly部署应使用导入的服务加载其库模块?

我有一个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