我读过其他主题,但我无法弄清楚这一点。我有一个使用log4j的EJB模块。我想将该EJB打包到JAR文件中并放入Web项目的WEB-INF / lib路径中。 Web项目有一个servlet,它从EJB执行一个函数,就是这样。但似乎appender不起作用,因为文件已创建但未写入。
我读到了JBoss的部署描述符,所以我根据之前的帖子创建了一个。但是我得到了“无法处理部署的阶段结构”错误。
12:04:44,905 ERROR [org.jboss.msc.service.fail](MSC服务线程1-2)MSC00001:无法启动服务jboss.deployment.unit。“SampleWeb.war”.STRUCTURE:org。服务jboss.deployment.unit中的jboss.msc.service.StartException。“SampleWeb.war”.STRUCTURE:无法处理部署“SampleWeb.war”的阶段结构 在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] 在java.lang.Thread.run(未知来源)[rt.jar:1.7.0_21] 引起:org.jboss.as.server.deployment.DeploymentUnitProcessingException:找不到jboss-structure.xml中的子部署SampleEJB.jar。可用的子部署: 在org.jboss.as.server.deployment.module.descriptor.DeploymentStructureDescriptorParser.subDeploymentNotFound(DeploymentStructureDescriptorParser.java:233)[jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 在org.jboss.as.server.deployment.module.descriptor.DeploymentStructureDescriptorParser.deploy(DeploymentStructureDescriptorParser.java:159)[jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 在org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113)[jboss-as-server-7.1.1.Final.jar:7.1.1.Final] ......还有5个
这是我创建的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。
答案 0 :(得分:2)
看起来像是日食问题,可能发生在耳朵的依赖项目不正确时。
在我的情况下,我得到了相同的错误,原因是耳朵无法找到一个包含的依赖jar。 只需检查该依赖项目并检查它是构建项目后maven创建jar的目标目录。如果maven没有正确构建该项目,它将是空的。 通过“mvn install”单独构建依赖项目,然后尝试在服务器上部署ear。 它对我有用。
答案 1 :(得分:1)
org.jboss.as.server.deployment.DeploymentUnitProcessingException:未找到jboss-structure.xml 中的子部署SampleEJB.jar。
似乎尚未部署SampleEJB.jar
。创建deployment structure file以按顺序部署组件。