2016-08-04 5 views
1

Ich habe folgende EAR-Struktur, die auf Wildfly 9.0.2Wildfly Reihenfolge der Classloading für Gläser im Ohr/lib

root.ear 
    |-ejb1.jar 
    |-ejb2.jar 
    |-lib/ 
     |-libA.jar 
     |-libB.jar 

Die libA.jar libB.jar und beide die gleiche Klasse haben entfaltet wird. Ich habe keinen Zugang zum Ändern von libB.jar und ich brauche beide EJB-Module, um die Klasse aus libA.jar auszuwählen.

Wie erzwingen Sie dies wie wir mit Klassenpfad durch die Bestellung der Gläser wie erforderlich?

Antwort

2

Wenn Ihre EJB-Dateien Zugriff auf Klassen in beiden Gläsern benötigen, müssen Sie die unerwünschte Klasse aus libB.jar entfernen.

Alle JAR-Dateien in einem EAR-LIB-Verzeichnis werden in Bezug auf die Klassensichtbarkeit als dasselbe Modul betrachtet. Dies wird von der Java EE-Spezifikation gefordert.

Sie weg mit dem Hinzufügen eines Class-Path Eintrag in die Datei MANIFEST.MF in jedem EJB jar bekommen könnte:

Class-Path: lib/libA.jar lib/libB.jar

+0

Klasse -Path-Logik funktioniert nicht –

Verwandte Themen