java - 无法处理部署的阶段结构

标签 java eclipse jakarta-ee jboss

我阅读了其他主题,但我不太明白这一点。我有一个使用 log4j 的 EJB 模块。我想将该 EJB 打包成一个 JAR 文件并放入 Web 项目的 WEB-INF/lib 路径中。 Web 项目有一个从 EJB 执行功能的 servlet,仅此而已。但似乎 appender 不起作用,因为文件已创建但未写入。

我读到了 JBoss 的部署描述符,因此我根据之前的一篇文章创建了一个。但是我收到“无法处理部署的阶段结构”错误。

12:04:44,905 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC00001: Failed to start service jboss.deployment.unit."SampleWeb.war".STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit."SampleWeb.war".STRUCTURE: Failed to process phase STRUCTURE of deployment "SampleWeb.war" at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [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(Unknown Source) [rt.jar:1.7.0_21] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_21] at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_21] Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: Sub deployment SampleEJB.jar in jboss-structure.xml was not found. Available sub deployments: at org.jboss.as.server.deployment.module.descriptor.DeploymentStructureDescriptorParser.subDeploymentNotFound(DeploymentStructureDescriptorParser.java:233) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.server.deployment.module.descriptor.DeploymentStructureDescriptorParser.deploy(DeploymentStructureDescriptorParser.java:159) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] ... 5 more

这是我创建的 jboss-deployment-structure.xml。因为 Web 项目只使用我创建的 EJB jar 文件,所以我假设没有使用部署标记。

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<sub-deployment name="SampleEJB.jar">
    <exclusions>
        <module name="org.apache.log4j"/>
        <module name="org.slf4j" />
        <module name="org.apache.commons.logging"/>
        <module name="org.log4j"/>  
        <module name="org.jboss.logging"/>
    </exclusions>
</sub-deployment>
 </jboss-deployment-structure>

顺便说一句,我正在使用 JBoss 7.1.1。

最佳答案

这似乎是 eclipse 问题,当 耳朵的依赖项目未正确构建 时可能会发生。

在我的例子中,我遇到了同样的错误,原因是 ear 无法找到一个包含的依赖 jar。 只需检查该依赖项目并检查它的目标目录,maven 在构建项目后创建 jar。如果 maven 没有正确构建该项目,它将是空的。 通过“mvn install”单独构建依赖项目,然后尝试在您的服务器上部署 ear。 它对我有用。

关于java - 无法处理部署的阶段结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21940739/

相关文章:

java - QueryDSL-maven-您需要使用 JDK 运行构建或在类路径上有 tools.jar

Eclipse 在不使用箭头键的情况下向左/向右/向上/向下移动光标

java - servlet 和 JAX-RS 依赖项来自哪里?

java - 将 jboss 迁移到 tomcat - javax.naming.NamingException

java - 如果我通过调用外部 API 获取流,是否应该关闭流?

java - DAO 模式多线程

java - 如何在重建时不丢失本地 GAE 数据存储中的数据

eclipse - 将多模块maven项目提交到SVN

java - 如何使用 Java API 获取所有字段的构面值

java - Android找不到符号变量错误