maven - JBoss EAR 部署顺序

标签 maven jboss jboss7.x maven-3 maven-ear-plugin

我有 5 个 EAR 需要部署。其中之一,local-configuration-ear-0.3.5-SNAPSHOT.ear ,是所有其他人的依赖,他们在部署时需要它,即 local-configuration-ear-0.3.5-SNAPSHOT.ear需要先部署。所有 5 个 EAR 都位于 deployments 中文件夹。

我读了here我可以使用 jboss-deployment-structure.xml管理 EAR 部署的顺序,但我遇到了一些问题。 我制作的文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
   <deployment>
       <dependencies>
           <module name="deployment.local-configuration-ear-0.3.5-SNAPSHOT.ear" />
       </dependencies>
   </deployment>
</jboss-deployment-structure>

但是在使用这个描述符部署 EAR 之后,我收到了以下错误:

15:01:29,752 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC00001: Failed to start service jboss.module.service."deployment.asterix-connector-ear-0.3.5-SNAPSHOT.ear".main: org.jboss.msc.service.StartException in s ervice jboss.module.service."deployment.asterix-connector-ear-0.3.5-SNAPSHOT.ear".main: Failed to load module: deployment.asterix-connector-ear-0.3.5-SNAPSHOT.ear:main
    at org.jboss.as.server.moduleservice.ModuleLoadService.start(ModuleLoadService.java:91) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) [rt.jar:1.6.0_24]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.6.0_24]
    at java.lang.Thread.run(Thread.java:679) [rt.jar:1.6.0_24]
Caused by: org.jboss.modules.ModuleNotFoundException: deployment.local-configuration-ear-0.3.5-SNAPSHOT:main
    at org.jboss.modules.Module.addPaths(Module.java:854)
    at org.jboss.modules.Module.link(Module.java:1181)
    at org.jboss.modules.Module.relink(Module.java:1211)
    at org.jboss.modules.ModuleLoader.relink(ModuleLoader.java:445)
    at org.jboss.as.server.moduleservice.ServiceModuleLoader.relinkModule(ServiceModuleLoader.java:204) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.server.moduleservice.ModuleLoadService.start(ModuleLoadService.java:71) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    ... 5 more

我做错了什么,有没有办法生成 jboss-deployment-structure.xml使用 Maven 以便我可以以编程方式将版本号附加到我的 EAR 文件名?

编辑:

我还尝试添加一个 jboss-all.xml归档到META-INF , 但它没有帮助:

<jboss umlns="urn:jboss:1.0">
    <jboss-deployment-dependencies xmlns="urn:jboss:deployment-dependencies:1.0">
        <dependency name="local-configuration-ear-${project.version}.ear" />
    </jboss-deployment-dependencies>
</jboss>

-与<filtering>true</filtering>maven-ear-plugin配置。我检查了 EAR 存档,项目版本设置正确,但有时仍会以错误的顺序部署 Artifact 。

最佳答案

该链接描述了如何在 EAR 内部而不是在两只耳朵之间执行部署顺序。

您应该使用部署依赖项配置 jboss-all.xml。

内容应该是这样的:

<jboss umlns="urn:jboss:1.0">
    <jboss-deployment-dependencies xmlns="urn:jboss:deployment-dependencies:1.0">
        <dependency name="app1.ear" />
        <dependency name="app2.ear" />
        <dependency name="app3.ear" />
    </jboss-deployment-dependencies>
</jboss>

并将其添加到您的所有耳朵中,但请确保您不进行循环依赖。

关于maven - JBoss EAR 部署顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19959140/

相关文章:

java - 在 Maven 原型(prototype)中找不到 dukes-age,一个 javaee7 示例

java - 代理设置在 NetBeans 中不起作用,但在命令行中起作用

java - 如何下载和编译SwingX

security - PicketLink - NoClassDefFound : org/picketlink/idm/config/StoreConfiguration

java - JBoss 无法启动,因为地址 localhost :1099 is already in use

jboss - org.apache.cxf.BusException : No DestinationFactory was found for the namespace http://schemas. xmlsoap.org/soap/http/

java - 如何在 JBoss 7.1 中使用 JAX-RS 将数据库管理器注入(inject)到 Web 服务中?

java - Jboss 7生产服务器端口设置

java - 将 Jersey RESTful Web 服务与 TomEE 结合使用

java - JBoss Forge 生成的 REST 端点返回 NULL 实体