如何加载一个外部jar,该jar具有在wildfly中部署的war中实现接口的类

如何加载一个外部jar,该jar具有在wildfly中部署的war中实现接口的类,jar,jboss,war,external,wildfly-10,Jar,Jboss,War,External,Wildfly 10,我有一个jar,它有一个实现类,实现了一个驻留在war中的接口。jar还需要某些自定义异常和war文件中的一些域类。 我不能把罐子投入战争,因为它可以经常更换。 我正在把这场战争部署到wildfly 10中。我读了stackoverflow的一篇文章并尝试了它,但我再次得到ClassNotFoundException。我将jar放在独立文件夹中,并在jboss-deployment-structure.xml中给出资源的路径,如下所示 <jboss-deployment-structure

我有一个jar,它有一个实现类,实现了一个驻留在war中的接口。jar还需要某些自定义异常和war文件中的一些域类。 我不能把罐子投入战争,因为它可以经常更换。
我正在把这场战争部署到wildfly 10中。我读了stackoverflow的一篇文章并尝试了它,但我再次得到ClassNotFoundException。我将jar放在独立文件夹中,并在jboss-deployment-structure.xml中给出资源的路径,如下所示

<jboss-deployment-structure>
    <resources>
        <resource-root path:"../test.jar"/>
    </resources>
</jboss-deployment-structure>


我还尝试将它作为一个模块引用,但反过来它需要来自不同类加载器中的war文件的依赖关系。有人能帮我解决这个问题吗。

既然你说要部署JAR,那么你应该使用模块依赖关系,而不是资源依赖关系

<jboss-deployment-structure>
    <dependencies>
        <module name="deployment.test.jar"/>
    </dependencies>
</jboss-deployment-structure>


用于文件系统路径。查看一下jboss部署结构.xml的代码,我想可能有点混淆。我正在部署WAR文件,我希望将外部jar加载到同一个类加载器中。我已经尝试将这个JAR作为模块添加到JBOSS中,并在JBOSS-deployment-structure.xml中声明它的依赖关系。但是加载WAR外部模块的类加载器位于加载WAR的类加载器的更高级别。因此,当我尝试部署它时,我说由于JAR类对某些WAR类的依赖性,无法将特定的外部模块链接到WAR。如果希望将JAR加载到与WAR相同的类加载程序中,则需要将其包含在WAR中。这是唯一可行的方法。