当前位置: 首页 > 知识库问答 >
问题:

JBoss中的基本EAR包部署

羊舌成周
2023-03-14

这就是我想要达到的目标:

  • 1 ear-package:all.ear
  • 耳朵包包含两个war(耳朵根部的a.war和b.war)
  • ear-package包含1个自制的jar C和许多第三方jar(在app-inf\lib下)

这个包需要部署在JBoss WildFly 8.2.1上

我使用的是Maven的ear插件(maven-ear-plugin,版本2.10.1)。我在pom中的配置如下所示(这是“parent'-project,它组合了另外三个项目):

<configuration>
    <finalName>All</finalName>
    <defaultLibBundleDir>APP-INF/lib</defaultLibBundleDir>
    <includeLibInApplicationXml>true</includeLibInApplicationXml>
    <version>6</version>
    <displayName>All</displayName>
    <modules>
        <jarModule>
            <groupId>project</groupId>
            <artifactId>C</artifactId>
            <bundleFileName>C.jar</bundleFileName>
            <uri>APP-INF/lib/C.jar</uri>
            <bundleDir>APP-INF/lib</bundleDir>
        </jarModule>
        <webModule>
            <groupId>project</groupId>
            <artifactId>A</artifactId>
            <uri>A.war</uri>
            <bundleFileName>A.war</bundleFileName>
            <contextRoot>/a</contextRoot>
            <bundleDir>/</bundleDir>
        </webModule>
        <webModule>
            <groupId>project</groupId>
            <artifactId>B</artifactId>
            <uri>B.war</uri>
            <bundleFileName>B.war</bundleFileName>
            <contextRoot>/b</contextRoot>
            <bundleDir>/</bundleDir>
        </webModule>
    </modules>
    <archive>
        <manifestEntries>
            <Implementation-Version>1.0</Implementation-Version>
        </manifestEntries>
    </archive>
</configuration>

我的meta.inf/application.xml文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="6"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_6.xsd">
    <display-name>All</display-name>
    <initialize-in-order>true</initialize-in-order>
    <module>
        <java>APP-INF/lib/C.jar</java>
    </module>
    <module>
        <web>
            <web-uri>B.war</web-uri>
            <context-root>b</context-root>
        </web>
    </module>
    <module>
        <web>
            <web-uri>A.war</web-uri>
            <context-root>a</context-root>
        </web>
    </module>
    <library-directory>APP-INF/lib</library-directory>
</application>

耳包制成。所有第三方jar都在app-inf/lib下,但是c.jar在根目录下。

当我试图将包上传到JBoss时,我已经搞砸了很多,并得到了不同的错误:

 Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS016703: Module may not be a child of the EAR's library directory. Library directory: APP-INF/lib, module file name: APP-INF/lib/[SomeThirthPartyLib].jar"

我错过了什么?(特定清单配置?A、B或C的特定pom.xml设置?JBoss设置?...?)

共有1个答案

卫嘉谊
2023-03-14

错误“wflyee0097:Module可能不是EAR的库目录的子目录”的解决方案:该错误是由于application.xml中的标记app-inf/lib。如果库JAR位于ear/lib内,那么application.xml将工作良好,因为它位于ear/app-inf/lib下,jboss或wildfly将无法理解这个(appication.xml)部署描述符。因此,即使库目录不同,也要使用wildfly理解的jboss-app.xml。解决方案:只需将application.xml的完整内容复制到jboss-app.xml中,并将其放置在META-INF文件夹中(还要确保删除application.xml文件,或者不通过pom.xml生成该文件)

 类似资料:
  • 我使用maven原型“org.jboss.spec.archetypes:jboss-javaee6-webapp-ear-archetype”生成代码。我启动了JBoss7,然后尝试从project root进行部署。 包装成功了。 非常感谢! 这是我打包后的项目结构(部分省略)

  • 我在Linux环境下在JBOSS 6.3 EAP UAT中部署耳朵时遇到问题。同样的耳朵我可以在本地Windows和Linux环境中部署,没有任何错误。但是在UAT中,它会对xmlparserv2.jar.产生问题,如果我成功地删除了部署的jar应用程序。由于应用程序正在使用xmlparserv2.jar无法删除它。以下是服务器日志中捕获的错误。 我想请你帮忙,谢谢。

  • 我在jboss EAP6.4服务器上部署ear文件时遇到问题。下面是原木。请帮帮忙。 13:21:39,000信息[org.jboss.as.server.deployment.scanner](deploymentscanner-threads-2)JBAS015003:在部署目录中找到process-engine.ear。要触发部署,请创建一个名为process-engine.ear.dode

  • 是否有一种方法可以只在EAR成功启动后才允许HTTP连接? 或者,是否可以用“503服务不可用”替换“404因为这里没有部署任何东西”-错误?这将更好地表达问题,并将容易处理外部······

  • 我有使用Spring Security OAuth2作为保护的Spring Boot应用程序。当使用默认服务器测试时,该应用程序运行良好。但是,当我尝试在JBoss EAP 6.4上部署它时,该应用程序需要CSRF令牌。如何禁用JBoss的基本身份验证,以便我的应用程序不需要CSRF令牌? 编辑: 正如我在sadasidha回答的评论中所描述的,这个问题没有出现在Wildfly 8(JBoss A

  • 我有一个应用程序,其中有以下模块ct-ejb(ejb)ct-rest(war)ct-web(war)ct-ear(ear) 我正在尝试构建一个EAR文件,并将其部署到intellij中的JBOSS应用服务器。我的申请。xml如下所示。我从ct那里得到的。ear模块- 问题是,我在将ear部署到服务器时遇到异常。它清楚地表明“未找到模块文件ct-web.war…”但ct网络。目标文件夹中存在war。