我讀過其他主題,但我無法弄清楚這一點。我有一個使用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。
奇怪。我把它放在Web應用程序的WEB-INF/lib文件夾中。它應該在別的地方嗎?或者我應該把它放在像「WEB-INF/lib/SampleEJB.jar」這樣的整個路徑上? – Xanathos
Shoulnd't外部和WAR + JAR被創建爲EAR? – kosa
據我所知,描述符同樣用於EAR和WAR。我正在部署一個Web應用程序(WAR),並且這是Web應用程序中唯一的.jar文件,所以我認爲它可以。 – Xanathos