Ich muss ein Projekt (Parent und EAR, das jar, ejb und 2 Kriegsmodule enthält) aus RAD 9.5 und mit Maven erstellen.Maven und RAD produzieren verschiedene EARs
Wenn ich ein Projekt von Maven Kommandozeile erstellen, funktioniert alles gut. Es erstellt ein Skinny Wars-Archiv, das unter WebSphere 8.5.5 ausgeführt wird.
Beim Versuch, Projekt von RAD zu aktualisieren oder EAR zu exportieren, erhalte ich die Datei, die anders ist und nicht funktioniert, mit ClassNotFoundException für eine der Abhängigkeiten des EJB.
Weiter sah ich, dass es einen Unterschied in MANIFEST.MF in Classpath Abschnitt gibt. Maven Projekt setzen es Fälle mit lib/Präfix und M2e/RAD ohne, wie folgt aus:
Class-Path: lib/log4j-api-2.6.jar lib/log4j-core-2.6.jar lib/junit-4.12.jar lib/hamcrest-core-1.3.
in reiner Maven und:
Class-Path: log4j-api-2.6.jar log4j-core-2.6.jar junit-4.12.jar hamcrest-core-1.3.
Ich habe versucht, ein Projekt zu aktualisieren, spielte mit den Einstellungen in Pom. Dies ist der Arbeitsanwendung, der ich am nächsten komme.
Meine aktuelle ejb Plugin-Konfiguration:
<plugin>
<artifactId>maven-ejb-plugin</artifactId>
<version>2.5</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
<ejbVersion>3.1</ejbVersion>
</configuration>
</plugin>
Und die Ausnahme (die unterste Ebene):
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
at java.net.URLClassLoader.findClass(URLClassLoader.java:600)
at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:243)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:786)
at java.lang.ClassLoader.loadClass(ClassLoader.java:764)
at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:741)
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62)
at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58)
at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:585)
at java.lang.ClassLoader.loadClass(ClassLoader.java:741)
... 75 more
Ich nehme an, dass es das Problem ist, aber ich weiß nicht heiß, es zu beheben.
Update: versuchte Addierabschnitt zu manifestieren:
<classpathPrefix>lib/</classpathPrefix>
gleiches Ergebnis.
Wenn Sie eine EAR-Datei-Unterstützung von Skinny Wars erstellen, müssen die extrahierten Dateien irgendwo liegen, was im Falle eines EAR in den lib-Ordner der EAR-Ebene bedeutet. Ich weiß nicht, was RAD hier macht ... – khmarbaise
Ja, sie sind da. Nur nicht von nirgendwo referenziert. Siehe auch Update für eine Frage. – Anton
Die Ausnahmen werden vom Websphere-Anwendungsserver ausgegeben, wenn Sie die EAR-Datei bereitgestellt haben? – khmarbaise