2014-02-21 50 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。 它爲我工作。