Frage

Um das Problem zusammenfassen ich begegnet, ich habe eine EJB, die Version A einer Bibliothek verwendet (nennen wir es dep-vA.jar). dep-vA.jar wird in der Wurzel der JAR-Datei des EJB verpackt. Der Domain-lib-Ordner in dem Anwendungsserver Version B der gleichen Bibliothek enthält (nennen wir es dep-vB.jar). Wenn die EJB-Aufruf, bekomme ich einen Fehler aufgrund dep-vB.jar Datei statt dep-vA.jar geladen.

Ich denke, den ersten Teil dieser Frage ist, ob Sun One Application Server v9.1 Isolat EJBs voneinander? Ich hatte den Eindruck, dass es funktioniert. Aber es scheint, als ob eine andere Anwendung dep-vB.jar geladen und diese EJB verwendet es direkt ohne eigenen zu Laden.

Die zweite Frage ist, ob die App-Server-Isolat EJBs tut, ist es Abhängigkeiten von dem JAR-Datei des EJB zu laden, bevor in dem Anwendungsservers lib Ordner suchen? Ich hatte den Eindruck, dass dies auch der Fall ist, aber vielleicht auch nicht ...

Ist jemand vertraut genug mit Sun-Anwendungsservern zu erklären, warum dep-vB.jar eher geladen wird als dep-vA.jar? Gibt es eine Möglichkeit, es zu Last dep-vA.jar zu bekommen, ohne zu ändern, was in dem Anwendungsservers lib Ordner ist? (Ich würde zögern, alles zu tun, dass andere Anwendungen auf dem Server auswirken könnte)

Danke.

War es hilfreich?

Lösung

  

Ich denke, den ersten Teil dieser Frage ist, ob Sun One Application Server v9.1 Isolat EJBs voneinander? Ich hatte den Eindruck, dass es funktioniert. Aber es scheint, als ob eine andere Anwendung dep-vB.jar geladen und diese EJB verwendet es direkt ohne eigenen zu Laden.

Nach Sahoo (das ist ein Glassfish-Entwickler ), die Java EE-Spezifikation hat nicht Mandat Klasse Laden Isolation zwischen den Modulen eines einzigen Ohr so ??das Verhalten von einem App-Server auf einem anderen verschieden sein kann. Mit Sun ONE, meinem Verständnis der Dokumentation ist, dass EJB-JAR-Dateien isoliert.

  

Die zweite Frage ist, ob die App-Server-Isolat EJBs tut, ist es Abhängigkeiten von dem JAR-Datei des EJB zu laden, bevor in dem Anwendungsservers lib Ordner suchen? Ich hatte den Eindruck, dass dies auch der Fall ist, aber vielleicht auch nicht ...

Es ist eine Eltern-erste Strategie (und meines Wissens, Sun ONE erlaubt nur die Delegierung Modus für Webapps zu ändern ).

Das wird gesagt, was passiert, wenn Sie dep-vA.jar im Class-Path Eintritt des MANIFEST.MF der EJB-JAR-Liste?

Siehe auch

Andere Tipps

Ich habe, dass bestimmte Server nicht verwendet, aber ich weiß, dass in WebSphere, gibt es eine Option ist PARENT_FIRST oder PARENT_LAST Classloading zu verwenden. Sie würden für ein Äquivalent von PARENT_LAST werden, wo die Klassen von der EAR geladen werden, bevor an den Server nach oben.

Ich würde davon ausgehen, dass eine solche Konfiguration in jedem App-Server möglich ist, wie Sie immer in der Lage sein sollte, Ihre anwendungsspezifische Gläser zu erzwingen über alle anderen geladen werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top