EJB-Module

Ein EJB-Modul (Enterprise JavaBeans) wird verwendet, um eine oder mehrere Enterprise-Beans zu einer implementierbaren Einheit zusammenzustellen (assemblieren). EJB-Module werden in einer Standard-JAR-Datei (Java™ Archive) gespeichert.

Ein EJB-Modul enthält folgende Elemente:

EJB-Module können als eigenständige Anwendung implementiert oder mit anderen EJB-Modulen oder Webmodulen zu einer Java-Anwendung kombiniert werden. EJB-Module werden in einem Enterprise-Bean-Container installiert und ausgeführt.

Zum Packen eines Moduls der EJB Version 3.x mit einem Implementierungsdeskriptor stehen mehrere Methoden zur Verfügung: Paketieren eines Moduls der EJB Version 3.x ausschließlich mit einer Session-Bean der EJB Version 3.x und/oder nachrichtengesteuerten Bean, ausschließlich mit einer EJB-2.1-Session-Bean und/oder nachrichtengesteuerten Bean, oder mit einer Kombination von Beans der Version 2.1 und der Version 3.x. Der XML-Implementierungsdeskriptor muss ein Implementierungsdeskriptor der Version 3.x sein. Entity-Beans der Version 2.1 müssen mit Implementierungsdeskriptoren der Version 2.1 in Module paketiert werden.

EJB-Module, die Beans der EJB Version 3.x enthalten, müssen bei ihrer Ausführung im Produkt die Spezifikationsstufe EJB 3.x erfüllen. Wenn Sie das EJB-Modul für die Unterstützung von Beans der EJB Version 3.x definieren möchten, können Sie den Implementierungsdeskriptor "ejb-jar.xml" auf Version 3.0 oder 3.1 setzen, um sicherzustellen, dass das Modul den Implementierungsdeskriptor "ejb-jar.xml" nicht enthält. Wenn das EJB-Modul die Stufe 2.1 oder eine frühere Stufe verwendet, werden zur Ausführungszeit keine Funktionen der EJB Version 3.x, einschließlich Annotationssuche oder Ressourceninjektion, ausgeführt.

Weitere Informationen zum Packen und zur Implementierung von Beans der EJB Version 3.x finden Sie in der Übersicht über das Packen von Modulen der EJB Version 3.x.

Sichten des lokalen Clients

Die EJB-Spezifikation erfordert, dass lokale Clientsichten nur für EJBs, die in einer Anwendung gepackt sind, unterstützt werden. Das schließt lokale Home-Schnittstellen, lokale Geschäftsschnittstellen und Sichten ohne Schnittstellen ein. Das Produkt lässt den Zugriff auf lokale Clientsichten für EJBs, die in einer eigenständigen Anwendung gepackt sind, mit folgenden Einschränkungen zu:
  • Die lokale Schnittstelle und alle Parameter-, Rückgabe- und Ausnahmetypen, die von der lokalen Schnittstelle verwendet werden, müssen sowohl für den Klassenlader der aufrufenden Anwendung als auch den Klassenlader der EJB-Zielanwendung sichtbar sein. Sie können das sicherstellen, indem Sie entweder eine gemeinsam genutzte Bibliothek, die einem Serverklassenlader zugeordnet ist, oder eine isolierte gemeinsam genutzte Bibliothek, die beiden Anwendungen zugeordnet ist, verwenden. Weitere Informationen finden Sie im Artikel "Gemeinsam genutzte Bibliotheken erstellen".
  • Wenn die EJB-Zielanwendung gestoppt ist, müssen alle zwischengespeicherten Referenzen auf die EJB aktualisiert werden. Dazu können Sie eine der folgenden Aktionen ausführen:
    • Starten Sie die aufrufende Anwendung erneut. Am einfachsten ist es, die aufrufende Anwendung immer beim Neustart einer EJB-Zielanwendung, auf die sie sich stützt, erneut zu starten.
    • Rufen Sie eine neue Referenz aus JNDI ab. Standardmäßig werden JNDI-Suchvorgänge im Java-Namespace zwischengespeichert, und der Cache muss entweder inaktiviert oder gelöscht werden, wenn eine neue Referenz abgerufen werden soll. Weitere Informationen finden Sie im Artikel "Anwendungen entwickeln, die JNDI verwenden".

      Wenn die EJB-Anwendung gestoppt wurde, lösen EJB-Methodenaufrufe die Ausnahme com.ibm.websphere.ejbcontainer.EJBStoppedException aus. Wenn Sie die EJB-Referenz mit einer "@EJB"-Injektion oder einer JNDI-Suche in einer Instanzvariable zwischengespeichert haben, können Sie diese Ausnahme abfragen und die EJB-Referenz durch Ausführen einer nicht zwischengespeicherten Suche aktualisieren.

    • Aktivieren Sie indirekte lokale EJB-Proxys für die EJB-Zielanwendung. Das hat zur Folge, dass der lokale EJB-Proxy beim Neustart der Anwendung automatisch aktualisiert wird. Das Aktivieren indirekter lokaler Proxys verursacht zusätzlichen Systemaufwand für jeden EJB-Methodenaufruf.

      Sie können indirekte lokale Proxys beispielsweise über eine Administrationskonsole aktivieren. Klicken Sie auf Anwendungen > Anwendungstypen > WebSphere-Unternehmensanwendungen > Anwendungsname > Angepasste Eigenschaften > Neu. Geben Sie für die angepasste Eigenschaft den Namen com.ibm.websphere.ejbcontainer.indirectLocalProxies mit dem Wert true an, wenden Sie die Änderungen an, und speichern Sie sie.


Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cejb_emod
Dateiname:cejb_emod.html