Ich habe eine alte J2EE-Anwendung (J2EE 1.3), die in eine EAR verpackt, und in der EAR gibt es WARs und EJB JARs. Nun muss eines der EJB-JARs auf einige JARs von Drittanbieter-Bibliotheken verweisen. Was ist also der beste Ort, um diese JARs zu paketieren und wie?Wie packen Sie JARs von Drittanbietern in ein EJB-JAR?
Antwort
Sie gehen in die Ear-Datei, an der Wurzel oder Sie können ein Verzeichnis lib erstellen, um sie zu speichern. Jedes Projekt (EJB oder IST), die sie verweisen muss müssen sie in dem Class-Path enthalten: der Manifest-Datei.
Ear Inhalt
- log4j.jar
- lib
- commons-lang.jar
- MyEJBProj.jar
- MyWAR.war
MyEJBProj Inhalt
- classes
- META-INF
- MANIFEST.MF
MANIFEST.MF
Manifest-Version: 1.0
Class-Path: log4j.jar lib/commons-lang.jar
Der offizielle Dateiname ist MANIFEST.MF, und die Formatierung dieser Datei kann ziemlich wählerisch sein. Sie benötigen den gesamten Inhalt in derselben Zeile (oder verwenden Sie ein einzelnes Leerzeichen als Präfix in den folgenden Zeilen für die Fortsetzung), und Sie müssen Pfade mit "," begrenzen. Mit anderen Worten: Class-Path: log4j.jar, lib/commons-lang.jar –
Correct auf dem Namen (herausgegeben, das zu reflektieren), sollte alle Kappen, aber der Classpath kann einfach durch Leerzeichen getrennt werden, auch auf die gleiche Linie. Stellen Sie sicher, dass hinter dem letzten Eintrag kein Leerzeichen steht, da dies eine Fortsetzung anzeigt. Eclipse zum Beispiel schreibt/zeigt den Klassenpfad mit einem Jar pro Zeile und einem Leerzeichen am Ende jeder Zeile an, wenn ein weiterer folgt. – Robin
Vergessen Sie nicht, zwei Zeilenumbrüche am Ende der MANIFEST.MF einzufügen. Ich erinnere mich an einen alten Fehler, dies nötig war, denn sonst über einen Teil des Inhalts würde ignoriert werden ... –
- 1. Wie füge ich Jars von Drittanbietern in das lokale Maven-Repository ein?
- 2. OSGI - Umgang mit JARs von Drittanbietern, die für ein Bundle benötigt werden
- 3. Packen Sie Dateien in apk?
- 4. Wie erhalten Sie Cookies von Drittanbietern?
- 5. packen benannte Argumente in ein dict
- 6. Packen Sie eine Liste in Python aus?
- 7. Ant copy classpath jars in ein Verzeichnis
- 8. C++ packen ein typedef Enum
- 9. So finden Sie die Komponente von Drittanbietern, die in einer Bibliothek von Drittanbietern verwendet wird
- 10. Cppcheck: Wie überspringe ein Verzeichnis von Headerdateien von Drittanbietern?
- 11. Wie können Sie Bibliotheken von Drittanbietern in Glassfish verwenden?
- 12. Bibliotheken von Drittanbietern in CMake
- 13. Drittanbieter-Jars in Karte Job reduzieren
- 14. Einschließen von Third-Party-Jars ANT
- 15. Wie man Erlang Anwendungen von Drittanbietern verwaltet?
- 16. Bit packen in C
- 17. Vermeiden Sie das Scannen von Bibliotheken von Drittanbietern in Veracode
- 18. Wie fügen Sie Python-Bibliotheken von Drittanbietern in Google App Engine ein?
- 19. Wie Sie Bibliotheken von Drittanbietern zu MinGW hinzufügen?
- 20. Wie Sie sich richtig Einweg-Muster mit Bibliotheken von Drittanbietern
- 21. Verarbeitung von Zahlungen von Drittanbietern (mit PayPal), während ein Prozentsatz
- 22. Packen von Daten in Arrays so schnell wie möglich
- 23. So testen Sie Bibliotheksfunktionen von Drittanbietern in Winkeleinheitstests
- 24. Wie lautet der Parameteraufruf für STDIN, wenn Sie Objekte in ein Echo packen oder drucken?
- 25. Öffnen Sie ein Modal von einem iframe in einer Website von Drittanbietern
- 26. Laden von Jars zur Laufzeit
- 27. Verwalten interner Abhängigkeiten von Drittanbietern
- 28. So erkennen Sie doppelte JARs im Klassenpfad?
- 29. Magento API Verbindung von Drittanbietern
- 30. Packen Sie eine R-Datenrahmenspalte von Listen aus
Ausgezeichnete Frage. Warum ist die Bereitstellung/Struktur von EJB/EAR-Verpackungen so viel schwieriger als WAR ??? Dies sollte ein automatischer, recht typischer Anwendungsfall sein. – Roboprog