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

Wildfly中缺少EAR部署的模块

岳均
2023-03-14

我正在将一个EJB项目部署为Jboss WildFly18中的EAR。我的耳朵目前的布局是这样的:

 Person.ear->
    META-INF->
        jboss-deployment-structure.xml
        MANIFEST.MF
        ...
    lib->
        Common.jar
        BugReport.jar
    Person-ejb.jar
    Person-web.war
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
  <deployment>
      <dependencies>
         <module name="Common.jar" export="TRUE"/>
         <module name="BugReport.jar" export="TRUE"/>
      </dependencies>
    </deployment>
</jboss-deployment-structure>
15:00:20,234 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.module.service."deployment.Person.ear".main: org.jboss.msc.service.StartException in service jboss.module.service."deployment.Person.ear".main: WFLYSRV0179: Failed to load module: deployment.Person.ear
    at org.jboss.as.server.moduleservice.ModuleLoadService.start(ModuleLoadService.java:116)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1739)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1701)
    at org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1559)
    at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1363)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.jboss.modules.ModuleNotFoundException: com.tura.optics.common
    at org.jboss.modules.Module.addPaths(Module.java:1266)
    at org.jboss.modules.Module.link(Module.java:1622)
    at org.jboss.modules.Module.relinkIfNecessary(Module.java:1650)
    at org.jboss.modules.ModuleLoader.loadModule(ModuleLoader.java:299)
    at org.jboss.modules.ModuleLoader.loadModule(ModuleLoader.java:283)
    at org.jboss.as.server.moduleservice.ModuleLoadService.start(ModuleLoadService.java:93)
    ... 8 more

我尝试过通过jboss-deployment-structure.xml和manifest.mf定义依赖关系,但没有成功。我还尝试用包名(即com.tura.common)命名依赖项,因为我已经看到这两种格式都使用过。还是没运气。我不太确定我在这里错过了什么;看来我是在按照预期的布局。有谁能帮忙吗?

共有1个答案

羊舌志
2023-03-14

不需要使用jboss-deployment-structure.xml,因为Java EE平台规范(JSR366)涵盖了EAR中JAR库的引用

实际上,它应该与您当前的EAR结构一起工作,删除jboss-deployment-structure.xml

EE.8.2.1捆绑库一节提供了几种使JAR库可供模块使用的方法。

    null
Class-Path: lib/Common.jar lib/BugReport.jar

在文件person-ejb.jar内部的meta-inf/manifest.mf中。Person-Web.war也一样

您可以在EAR文件的META-INF目录中提供部署描述符application.xml,并覆盖 。EAR的application.xml文件示例为:

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_8.xsd" version="8">
    <display-name>Person.ear</display-name>
    <module>
        <ejb>Person-ejb.jar</ejb>
    </module>
    <module>
        <web>
            <web-uri>Person-web.war</web-uri>
            <context-root>/person</context-root>
        </web>
    </module>
    <library-directory>lib</library-directory>
</application>
 类似资料:
  • 我用野飞11和Java8。以前,我正在构建一个WAR文件,它需要dom4j JAR文件。我没有把它包含在WAR的WEB-INF/lib目录中,而是通过在WEB-INF/jboss-deployment-structure.xml.中添加一个条目链接到Wildfly模块JAR。所以我在EAR的根部创建了一个jboss-deploymebnt-structure.xml文件,有这些行 现在,当我部署E

  • 我(终于)从JBOSS5.1升级到Wildfly9.0.2.final(独立)。我正在学习如何通过scp重新部署压缩的EAR,希望部署扫描器能够接收到它。根据文档,我所要做的就是在standalone.xml(在部署描述符中)中设置auto-deploy-zipped=“true”,然后将。ear复制到deployments文件夹中。但是,当我这样做时,扫描器会在部署文件夹中放置一个“failed

  • 是否有使用Netbeans(8.0.2)在Wildfly上热部署ear文件的过程?我的当前生成过程(一个命令) 正在杀死我(每小时4/5个积木/香烟,一个积木3分钟)。 我在web上搜索了又搜索,听到人们谈论3毫秒的部署(我只能梦想),使用Netbeans“开箱即用”的热部署()以及在wildfly配置文件中向部署扫描程序添加。 但我还是没拿到。我的构建将我的部署发送到wildfly文件夹。而不是

  • 第一次在这里处理无服务器。在遵循将现有express应用迁移到无服务器的指南后,已成功使用无服务器部署进行部署。但是aws lambda不断抛出错误: “errorType”: “Runtime.ImportModule错误”, “错误消息”: “错误: 找不到模块 '无服务器-http'\n要求堆栈:\n- /var/task/app.js\n- /var/runtime/UserFunctio

  • 我已经按照这本手册从GlassFish迁移到Wildfly:http://wildfly.org/news/2014/02/06/GlassFish-to-wildfly-migration/ 然而,在WildFly中运行应用程序时,我遇到以下错误: 错误[org.jboss.as.Controller.management-Operation](控制器引导线程)wflyctl0013:操作(“d

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