Frage

ich Probleme habe von OC4J 10.1.2.3 bis 10.1.3.1.4 migrieren. Das Problem ist für Anwendungen, die mehrere EJBs haben (alle sind 2.1, kein EJB 3.0). Jdeveloper wird die Standard-ejb-jar.xml nehmen (die eine für Jdeveloper erforderlich, um es auf seinem Stand-alone OC4J Instanz laufen) und in jedem EJB-JAR-Modul-Paket, egal was. Dies führt zu dem Anwendungsserver in jedes EJB JAR-Modul, wenn das Bohren Bereitstellen und findet die gleichen EJB-jar.xml Datei N mal (wobei N = Anzahl der EJB-Module). Dies führt zu einer doppelten EJB-Referenzen und werden alle JNDI Lookups brechen wie: "java: comp / env / ejb / EJBName". So eine App bereitstellen, die 3 EJBs hat, EJB1, EJB2 und EJB3 bewirkt, dass der App-Server 9 EJBs statt 3. registrieren Ich brauche eine Best Practices Art und Weise, aber zwischen der Art und Weise 10.1.3.4 und JDeveloper handeln, die Situation ist eher dire ...

Side Hinweis: Sie werden funktionieren, wenn der Code JNDI Lookup-Web-App refractored ist nur "ejb / EJBName". Dies ist aber nicht wünschenswert.

War es hilfreich?

Lösung 2

Das Problem war, mehrere Referenz in unseren Einsatzprofilen. Wir waren ein Bereitstellungsprofil für jede EJB erstellen. Dies bedeutete, dass jeder EJB seiner eigenen ejb-jar.xml hatte (diese Datei in dem Projekt eine Beschreibung aller EJBs enthielt). Daher platziert jedes Mal JDeveloper ein EJB erstellt, er einen Deskriptor aller EJBs in jedem EJB es erzeugt wird, eine Menge an NxN Referenzen zu verursachen. Daher Nx (N-1) zusätzliche Referenzen.

Nun ist der entscheidende Punkt ist, dass Oracle Application Server 10.1.2.3.0 und unten nicht über diese doppelten Referenzen scherten. sehen können jedoch, wie wir, 10.1.3.1.4 ist eine ganz andere Version und das tat brechen.

Unsere fix: haben nur 1 EJB Deployment-Profil, das alle der EJB-Klassen und die POJO des enthält, die sie verwenden. Denken Sie daran, vor dem 1. EJB Profil gibt für jeden EJB war ... All dies tat, war für Jdeveloper lassen (was Mist ist IMHO) zu richtig eine gültige EAR erzeugen. Eine Kombination aus Jdeveloper und Oracle Application Server Mist ist, was dies verursacht hat.

Andere Tipps

Sie sollten die Oracle-Dokumentation überprüfen, um zu sehen, welche der Fall ist. Der Oracle® Container für J2EE Enterprise Javabeans-Entwicklerhandbuch ist ein guter Anfang Nach dem Oracle® Container für J2EE-Service Guide, Kapitel 2: Verwendung von JNDI Wenn Sie das Formular „ejb / EJBName“ verwenden Sie durchführen „local“ Nachschlag. Wenn Sie das vollständige Formular verwenden wollen, müssen Sie das Kontrollkästchen „Aktivieren der globalen JNDI Lookups“ -Abschnitt der „Verwendung von JNDI“ Kapitel.

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