EJB-Anwendungen in Liberty entwickeln

Eine Enterprise-Beans-Anwendung (EJB) ist eine Gruppe von Beans, die als Kombination aus einer JAR-Datei (Java™ Archive), einer WAR-Datei (Web Application Archive) oder einer EAR-Datei (Enterprise Application Archive) gepackt werden. Liberty stellt mehrere Features für die Unterstützung von Enterprise-Bean-Anwendungen zur Verfügung. 

Informationen zu dieser Task

WebSphere® Application Server Liberty bietet vollständige Unterstützung für die Enterprise-Beans-Spezifikation. Die Enterprise-Beans-Spezifikation definiert auch ein Lite-Subset, das auch ein konfigurierbares Feature ist, das in Libertybereitgestellt wird. Außerdem sind mehrere weitere optionale Features verfügbar, die Serverkonfigurationen aktivieren, die nur Untergruppen der vollständigen Enterprise-Beans-Spezifikation unterstützen. Diese Untergruppen ermöglichen die Verwendung von Serverkonfigurationen, die weniger Ressourcen verwenden, wenn die installierten Anwendungen nicht alle Funktionen der Enterprise-Beans-Spezifikation verwenden.

Informationen zum Entwickeln von Enterprise-Beans-Anwendungen mit WebSphere Developer Toolsfinden Sie unter Developing EJB 3,x applications.

Achtung:

Ab Jakarta EE 9 werden die Enterprise-Beans-Featurenamen, die zuvor mit ejb gestartet wurden, in enterpriseBeansumbenannt. Ab dem Release Jakarta EE 9.1 in Liberty Version 21.0.0.12wird das Feature Enterprise JavaBeans (ejb-3.2) beispielsweise in das Feature Jakarta Enterprise Beans (enterpriseBeans-4.0) umbenannt. Anwendungen, die mit dem Paketnamen javax geschrieben wurden, können weiterhin die ejb -Versionen der Features verwenden, und Anwendungen, die den Paketnamen jakarta verwenden, müssen die enterpriseBeans -Version der Features verwenden. Weitere Informationen zu Namensänderungen für Features von Jakarta EE 9 finden Sie unter Aktualisierungen für Features von Jakarta EE 9 auf der Website Open Liberty .

In der Spezifikation Jakarta Enterprise Beans 4.0 wurden vier API-Methoden entfernt. Bei der Migration einer Anwendung von einer früheren Version der Spezifikation müssen die folgenden Methoden entfernt oder durch die vorgeschlagene Alternative ersetzt werden.
javax.ejb.EJBContext.getCallerIdentity()
Verwenden Sie stattdessen die Methode getCallerPrincipal() .
javax.ejb.EJBContext.getEnvironment()
Verwenden Sie stattdessen die JNDI-Suche in java:comp/env .
javax.ejb.EJBContext.isCallerInRole(java.security.Identity)
Verwenden Sie stattdessen die Methode isCallerInRole(String) .
javax.ejb.SessionContext.getMessageContext()
Kein Ersatz; diese Methode ist für die JAX- RPC -API vorgesehen, die Liberty nicht unterstützt.
Die folgenden Features stellen die Mindestfunktionalität für die Enterprise-Beans-APIs bereit.
ejbLite
enterpriseBeansLite

Dieses Feature aktiviert die Lite-Untergruppe der Enterprise-Bean-Technologie gemäß der Definition in der Enterprise-Beans-Spezifikation. Diese Untergruppe enthält Unterstützung für lokale Session-Beans, die für die Enterprise-Beans-APIs 3.x geschrieben wurden. Ab dem Feature ejbLite-3.2 enthält das Subset auch Unterstützung für nicht persistente Enterprise-Bean-Zeitgeber und asynchrone lokale Schnittstellenmethoden.

Dieses Feature muss lediglich in der Datei server.xml aktiviert werden und erfordert keine zusätzliche Konfiguration.

mdb

Dieses Feature aktiviert die MDB-Teilmenge der Enterprise-Bean-Technologie, die der Unterstützung ähnelt, die die Features ejbLite und enterpriseBeansLite für Session-Beans aktivieren. Das Feature aktiviert keine Session-Beans. Wenn daher sowohl Session-Beans als auch Message-driven Beans benötigt werden, müssen beide Features in der Datei server.xml aktiviert werden.

Anmerkung: Enterprise Beans 2.x API-Entity-Beans werden von Libertynicht unterstützt. Für die Persistenz muss stattdessen JPA (Java Persistence API) verwendet werden.
Die folgenden Features stellen Erweiterungen für die zentralen Enterprise-Beans-Features bereit, die bei ihrer Kombination die vollständige Gruppe der Enterprise-Beans-APIs unterstützen:
ejbHome
enterpriseBeansHome

Dieses Feature aktiviert die Unterstützung der APIs von Enterprise Beans 2.x , insbesondere die Unterstützung für die Schnittstelle javax.ejb.EJBLocalHome . Die Schnittstelle javax.ejb.EJBHome wird auch unterstützt, wenn sie mit den Features ejbRemote oder enterpriseBeansHome kombiniert wird. Da dieses Feature ohne das entsprechende Feature ejbLite oder enterpriseBeansLite nicht nützlich ist, wird durch die Aktivierung dieses Features automatisch das entsprechende Feature ejbLite oder enterpriseBeansLite aktiviert.

Abgesehen von der Aktivierung des Features in der Datei server.xml ist keine zusätzliche Konfiguration für das Feature verfügbar, es sei denn, die Anwendungssicherheit (z. B. das Feature appSeciruty-2.0 ) ist ebenfalls aktiviert. Wenn die Anwendungssicherheit aktiviert ist, ist eine weitere Sicherheitskonfiguration erforderlich. Weitere Informationen finden Sie unter Einführung in die Sicherheit in Liberty.

ejbPersistentTimer
enterpriseBeansPersistentTimer

Dieses Feature aktiviert die Unterstützung für persistente Enterprise-Beans-Zeitgeber. Wenn Sie dieses Feature aktivieren, wird auch automatisch das entsprechende Feature "ejbLite" aktiviert.

Außer dass Sie dieses Feature in der Datei server.xml aktivieren, müssen Sie auch eine Datenquelle konfigurieren, um den persistenten Speicher für die Zeitgeber bereitzustellen. Standardmäßig wird die Datenquelle DefaultDataSource verwendet.

ejbRemote
enterpriseBeansRemote

Dieses Feature aktiviert die Unterstützung für ferne Enterprise-Beans-Schnittstellen. Wenn Sie dieses Feature aktivieren, wird auch automatisch das entsprechende Feature "ejbLite" aktiviert.

Dieses Feature muss lediglich in der Datei server.xml aktiviert werden und erfordert keine zusätzliche Konfiguration.

Das folgende Feature bietet eine komfortable Möglichkeit, die vollständige Gruppe von Enterprise-Beans-APIs zu aktivieren:
ejb
enterpriseBeans

Dieses Feature aktiviert alle Kern-und Erweiterungsfeatures für die Spezifikationsstufe des konfigurierten Features. Beispielsweise aktiviert ejb-3.1 die Features ejbLite-3.1 und mdb-3.1. Dieses Feature bietet keine zusätzliche Unterstützung über das, was durch die Aktivierung aller Kern-und Erweiterungs-Enterprise-Beans-Features bereitgestellt wird.

Abgesehen von der Aktivierung des Features in der Datei server.xml ist für dieses Feature keine zusätzliche Konfiguration erforderlich, die über die für die Features ejbPersistentTimer, enterpriseBeansPersistentTimer, ejbRemoteund enterpriseBeansRemote erforderlichen Komponenten hinausgeht.

Die folgenden Komfortfeatures enthalten Enterprise-Beans-Features.
webProfile
Dieses Feature aktiviert alle Features, die für Java EE oder Jakarta EE Web Profile erforderlich sind, das das Feature ejbLite oder enterpriseBeansLite enthält.
Java EE
Jakartaee
Dieses Feature aktiviert alle Features, die für Java EE oder Jakarta EE Full Profile erforderlich sind, das das Komfortfeature ejb oder enterpriseBeans enthält.

Vorgehensweise

Aktivieren Sie das Feature in der Datei server.xml wie im folgenden Beispiel gezeigt.
<featureManager>
    <feature>ejbLite-3.2</feature>
</featureManager>
<featureManager>
    <feature>enterpriseBeansLite-4.0</feature>
</featureManager>