选择Jboss模块和项目依赖项之间的库版本

问题描述 投票:0回答:1

我正在尝试对XML文件进行签名操作。在此过程中,我使用xmlSec 1.5库。如果我在本地测试中运行代码,则该过程将成功完成。但是,如果我在Jboss 7.1的战争中部署代码,则Jbos​​s会将其对xmlSec 1.5的依赖项替换为其模块依赖项“ xmlsec-2.0.8.redhat-1”,并且签名过程将失败。为了客户的请求,我可以排除xmlsec Jboss模块,但不能使用它进行签名。因此,问题在于:如何指定给定的库版本仅在部分代码中使用?。

在这种情况下,两个依赖项的路径是相同的:org.apache.santuario,因此,我不能使用它来指定库。

我正在尝试使用提供程序进行签名,但是同样,Jboss为其xmlsec-2.0.8安全提供程序覆盖了我的xmlsec-1.5安全提供程序。存在某种实例化提供程序并将其添加到Java提供程序集中以替换Jboss的方法?

java jboss dependencies jboss7.x xmlsec
1个回答
0
投票

您可以使用jboss-deployment-structure.xml文件排除JBoss提供的依赖关系,您需要将其放置在战争的WEB-INF目录下。您必须指定排除依赖项,如下所示。

<jboss-deployment-structure>  
 <deployment>  
    <exclusions>  
        <module name="$LIBRARY_OR_MODULE_YOU_WANT_TO_EXCLUDE"/>  
    </exclusions>  
</deployment>  

例如<module name="org.apache.santuario.xmlsec"/>

© www.soinside.com 2019 - 2024. All rights reserved.