2014-02-21 56 views
6

我读过其他主题,但我无法弄清楚这一点。我有一个使用log4j的EJB模块。我想将这个EJB打包成一个JAR文件并放入Web项目的WEB-INF/lib路径中。 Web项目有一个从EJB执行功能的servlet,就是这样。但似乎appender不起作用,因为该文件已创建但未写入。未能处理阶段结构部署

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

12:04:44905 ERROR [org.jboss.msc.service.fail](MSC服务线程1-2)MSC00001:无法启动服务jboss.deployment.unit “SampleWeb.war” .STRUCTURE :服务jboss.deployment.unit中的org.jboss.msc.service.StartException。“SampleWeb.war”.STRUCTURE:未能在org.jboss.as.server.deployment中处理部署“SampleWeb.war” 的阶段STRUCTURE。 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] 原因:org.jboss.as.server.deployment.DeploymentUnitProcessingException:Sub部署SampleEJB.jar in未找到jboss-structure.xml。可用的子部署: 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。

回答

1

org.jboss.as.server.deployment.DeploymentUnitProcessingException:子部署未找到jboss-structure.xml中的SampleEJB.jar

看来SampleEJB.jar尚未部署。按顺序创建deployment structure file以部署组件。

+0

奇怪。我把它放在Web应用程序的WEB-INF/lib文件夹中。它应该在别的地方吗?或者我应该把它放在像“WEB-INF/lib/SampleEJB.jar”这样的整个路径上? – Xanathos

+0

Shoulnd't外部和WAR + JAR被创建为EAR? – kosa

+0

据我所知,描述符同样用于EAR和WAR。我正在部署一个Web应用程序(WAR),并且这是Web应用程序中唯一的.jar文件,所以我认为它可以。 – Xanathos

1

看起来像eclipse问题,可能发生在依赖项目的耳朵没有正确构建

在我的情况下,我得到了同样的错误,因为耳朵无法找到一个包含的依赖jar。 只需检查该依赖项目,并在构建项目后检查它是maven创建jar的目标目录。如果maven没有正确构建该项目,它将是空的。 通过“mvn install”单独构建依赖项目,然后尝试在服务器上部署ear。 它为我工作。