在与 JBoss 集成的 Maven 中设置提供的范围



我在IntelliJIDEA 14.0中使用jboss-eap-6.4开发了一个基于maven的项目(maven-3.3.9)。我正在使用bouncy castle库,我必须将它们设置为在 maven 依赖项中provided scope

  1. 我应该把充气城堡罐子文件放在哪里?
  2. 我应该设置什么配置?

对于第一个问题,我尝试了两种选择,如下所示:

  • 我把jar文件放在这里:jboss-eap-6.4modulesorgbouncycastlemain

  • 我把jar文件放在这里:jboss-eap-6.4modulessystemlayersbaseorgbouncycastlemain

此外,我在 jar 文件旁边的module.xml中提供了以下配置:

<?xml version=1.0" encoding=UTF-8"?>
<module xmlns="run:jboss:module:1.1" name="org.bouncycastle">
    <resources>
        <resource-root path="bcpkix-jdk15on-1.54.jar"/>
        <resource-root path="bcprov-jdk15on-1.54.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api" slot="main" export="true"/>
    </dependencies>
</module>

但是,当我清理并安装 maven 时,出现以下错误:

  • 项目剥离期间出错
  • 由java.lang.RunTimeException引起:...
  • 由java.lang.NoClassDefFoundError引起:...
  • 由java.lang.ClassNotFoundException引起:...

您提到的错误是与 maven 无关的部署错误。

要将 JBoss 模块添加到您的应用程序,请创建一个名为 WEB-INFjboss-deployment-structure.xml 的文件,并在依赖项中添加该模块。在您的情况下,文件内容应如下所示。

<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="org.bouncycastle"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>

部署时,jboss 会将模块加载到类路径中。

最新更新