在JBoss环境中,从ear文件而不是从web应用程序加载共享本机模块

在JBoss环境中,从ear文件而不是从web应用程序加载共享本机模块,jboss,native,Jboss,Native,有一个jar可以加载本机库.so文件。这个jar在服务器上作为jboss模块提供。每个类加载器只能加载一次本机文件。 ear1文件中有两个war模块war1和war2。如果该模块在war1和war2中都配置为jboss模块,那么我没有问题。但是我正在寻找一种替代方法,如果我配置jar,它将本地库加载到earfile/lib中,war将从那里引用,那么它就可以工作了。该特定类应该只加载一次,并且应该在两个war文件中都可用 解决方案: 我们需要将子部署部分添加到ear/Meta INF文件夹中

有一个jar可以加载本机库.so文件。这个jar在服务器上作为jboss模块提供。每个类加载器只能加载一次本机文件。 ear1文件中有两个war模块war1和war2。如果该模块在war1和war2中都配置为jboss模块,那么我没有问题。但是我正在寻找一种替代方法,如果我配置jar,它将本地库加载到earfile/lib中,war将从那里引用,那么它就可以工作了。该特定类应该只加载一次,并且应该在两个war文件中都可用

  • 解决方案:
我们需要将子部署部分添加到ear/Meta INF文件夹中的jboss部署xml文件中。通过这种方式,jboss模块可以对所有其他子模块/war模块可用

 <?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="com.aexp.sec.crypto" export="TRUE" />
        </dependencies>
    </deployment>
    <sub-deployment name="crypto-war1-1.0-SNAPSHOT.war">
        <dependencies>
            <module name="com.aexp.sec.crypto" />
        </dependencies>
    </sub-deployment>
    <sub-deployment name="crypto-war2-1.0-SNAPSHOT.war">
        <dependencies>
            <module name="com.aexp.sec.crypto" />
        </dependencies>
    </sub-deployment>
</jboss-deployment-structure> 
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
    <dependencies>
        <module name="com.aexp.sec.crypto" export="TRUE" />
    </dependencies>
</deployment>
<sub-deployment name="crypto-war1-1.0-SNAPSHOT.war">
    <dependencies>
        <module name="com.aexp.sec.crypto" />
    </dependencies>
</sub-deployment>
<sub-deployment name="crypto-war2-1.0-SNAPSHOT.war">
    <dependencies>
        <module name="com.aexp.sec.crypto" />
    </dependencies>
</sub-deployment>

注意:为了未来用户的利益,在下面添加@Vamshidhar Cheburthy的解决方案

我们需要将子部署部分添加到ear/Meta INF文件夹中的JBoss部署XML文件中。通过这种方式,JBoss模块可以对所有其他子模块/war模块可用

 <?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="com.aexp.sec.crypto" export="TRUE" />
        </dependencies>
    </deployment>
    <sub-deployment name="crypto-war1-1.0-SNAPSHOT.war">
        <dependencies>
            <module name="com.aexp.sec.crypto" />
        </dependencies>
    </sub-deployment>
    <sub-deployment name="crypto-war2-1.0-SNAPSHOT.war">
        <dependencies>
            <module name="com.aexp.sec.crypto" />
        </dependencies>
    </sub-deployment>
</jboss-deployment-structure> 
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
    <dependencies>
        <module name="com.aexp.sec.crypto" export="TRUE" />
    </dependencies>
</deployment>
<sub-deployment name="crypto-war1-1.0-SNAPSHOT.war">
    <dependencies>
        <module name="com.aexp.sec.crypto" />
    </dependencies>
</sub-deployment>
<sub-deployment name="crypto-war2-1.0-SNAPSHOT.war">
    <dependencies>
        <module name="com.aexp.sec.crypto" />
    </dependencies>
</sub-deployment>


您能给这个添加代码吗?谢谢。我成功了。我需要在下面添加您的解决方案,您可以根据需要进行编辑或关闭此解决方案。