Ich lese in anderen Themen, aber ich kann das nicht ganz herausfinden. Ich habe ein EJB-Modul, das log4j verwendet. Ich möchte dieses EJB in eine JAR-Datei packen und den WEB-INF/lib-Pfad eines Webprojekts einfügen. Das Webprojekt hat ein Servlet, das eine Funktion vom EJB ausführt, und das war's. Aber scheint, dass der Appender nicht funktioniert, denn die Datei wird erstellt, aber nicht geschrieben.Fehler beim Verarbeiten der Phase STRUKTUR der Bereitstellung
Ich habe gelesen, dass ein Deployment-Deskriptor für JBoss, so dass ich eine basierend auf einem der vorherigen Beiträge erstellt. Aber ich bekomme einen Fehler "Fehler beim Verarbeiten der Phase STRUCTURE der Bereitstellung".
12: 04: 44.905 ERROR [org.jboss.msc.service.fail] (MSC Dienstthread 1-2) MSC00001. Fehlgeschlagen jboss.deployment.unit Dienst starten "SampleWeb.war" .STRUCTURE : org.jboss.msc.service.StartException in Dienst jboss.deployment.unit. "SampleWeb.war" .STRUCTURE: Die Phase STRUCTURE der Implementierung "SampleWeb.war" konnte nicht unter org.jboss.as.server.deployment verarbeitet werden. DeploymentUnitPhaseService.start (DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar: 7.1.1.Final] bei org.jboss.msc.service.ServiceControllerImpl $ StartTask.startService (ServiceControllerImpl.java : 1811) [jboss-msc-1.0.2.GA.jar: 1.0.2.GA] bei org.jboss.msc.service.ServiceControllerImpl $ StartTask.run (ServiceControllerImpl.java:1746) [jboss-msc-1.0 .2.GA.jar: 1.0.2.GA] bei java.util.concurrent.ThreadPoolExecutor.runWorker (Unbekannte Quelle) [rt.jar: 1.7.0_21] bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (Unbekannte Quelle) [rt. jar: 1.7.0_21] bei java.lang.Thread.run (Unbekannte Quelle) [rt.jar: 1.7.0_21] Verursacht von: org.jboss.as.server.deployment.DeploymentUnitProcessingException: Sub-Deployment SampleEJB.jar in jboss-struktur.xml wurde nicht gefunden. Verfügbare Unterbereitstellungen: bei org.jboss.as.server.deployment.module.descriptor.DeploymentStructureDescriptorParserDeploymentNotFound (DeploymentStructureDescriptorParser.java:233) [jboss-as-server-7.1.1.Final.jar: 7.1.1.Final ] bei org.jboss.as.server.deployment.module.descriptor.DeploymentStructureDescriptorParser.deploy (DeploymentStructureDescriptorParser.java:159) [jboss-as-server-7.1.1.Final.jar: 7.1.1.Final] um org.jboss.as.server.deployment.DeploymentUnitPhaseService.start (DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar: 7.1.1.Final] ... 5 weitere
Hier ist die jboss-deployment-structure.xml, die ich erstellt habe. Da das Webprojekt nur die EJB-JAR-Datei verwendet, die ich erstellt habe, ging ich davon aus, dass das Implementierungs-Tag nicht verwendet wird.
<?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>
Ich benutze übrigens JBoss 7.1.1.
Seltsam. Ich lege es in den Ordner WEB-INF/lib der Webanwendung. Sollte es woanders sein? Oder soll ich es mit dem ganzen Pfad wie "WEB-INF/lib/SampleEJB.jar" tun? – Xanathos
Soll es draußen sein und WAR + JAR als EAR erstellt werden? – kosa
Soweit ich gelesen habe, dient der Deskriptor gleichermaßen für EAR und WAR. Ich stelle eine Web-Anwendung (WAR) bereit, und dies ist die einzige .jar-Datei in der Web-Anwendung, also dachte ich, es wäre in Ordnung. – Xanathos