EJB 2.x-Entwicklungsressourcen

In diesem Abschnitt werden die Ressourcen und Entwicklungstools beschrieben, die im Allgemeinen in der EJB-Entwicklung Version 2.x verwendet werden.

EJB-Module

EJB-Module werden in der Ansicht 'Projektexplorer' der Java™ EE-Perspektive angezeigt und entsprechen EJB-Projekten.

Mit einem EJB-Modul können Enterprise-Beans zu einer einzigen implementierbaren Einheit zusammengefasst werden. Ein EJB-Modul wird in einem EJB-Projekt entwickelt und kann entweder als eigenständige EJB-JAR-Datei exportiert oder mit anderen EJB- oder Webmodulen innerhalb einer Unternehmensanwendung kombiniert werden. Eine EJB-JAR-Datei verwendet das Format einer Java-Standardarchivdatei. Ein EJB-Modul enthält folgende Elemente:

  • Eine oder mehrere Enterprise-Beans und ihre zugehörigen .class- und .java-Dateien.
  • Grafiken und sonstige Dateien, je nachdem, was die Enterprise-Bean benötigt.
  • Einen Deploymentdeskriptor. Der Dateityp für den Deploymentdeskriptor lautet Extensible Markup Language (XML). Diese Datei deklariert den Inhalt des EJB-Moduls, definiert die Struktur der Beans in dem Modul und beschreibt, wie die Beans zur Laufzeit zu verwenden sind.
  • Eine MANIFEST.MF-Datei im Verzeichnis META-INF. Die Manifestdatei kann einen Klassenpfadeintrag enthalten, mit Verweisen auf andere JAR-Dateien oder EJB-Module in einer J2EE-Unternehmensanwendung. Sie definiert die externen Abhängigkeiten des Moduls.

Ein EJB-Modul wird in einem EJB-Container installiert und ausgeführt.

Eine Enterprise-Bean ist eine Java-Komponente, die mit anderen Ressourcen kombiniert werden kann, um verteilte Client/Server-Anwendungen zu erstellen.

Hinweis: Wenn Sie eine JAR-Datei für einen EJB-Client für das EJB-Modul erstellen, sind die Clientschnittstellenklassen für die Enterprise-Beans nicht in der EJB-JAR-Datei eingeschlossen, sondern in der JAR-Datei für den EJB-Client.
EJB-Projekte

In der Workbench erstellen und verwalten Sie Ressourcen für Unternehmensanwendung in Projekten. Ein EJB-Projekt ist ein logisches Modul, mit dem Sie Ihre Enterprise-Beans organisieren können.

Die Workbench unterstützt Projekte mit EJB 1.1, EJB 2.0 und EJB 2.1. Die J2EE-Spezifikationsstufe eines übergeordneten EAR-Projekts muss für EJB 2.0-Projekte auf J2EE 1.3 oder höher und für EJB 2.1-Projekte auf J2EE 1.4 gesetzt werden. In einem EJB 1.1-Projekt können Sie lediglich EJB 1.1- Beans erstellen.

Ein EJB-Projekt ist ein spezialisiertes Java-Projekt. Ebenso wie ein Java-Projekt muss ein EJB-Projekt einen oder mehrere Quellenordner aufweisen, in denen die Quellen- und Ausgabedateien des betreffenden Projekts enthalten sind. Der Quellenordner hat standardmäßig den Namen ejbModule, Sie können diesen Namen jedoch ändern, wenn Sie das Projekt oder neue Quellenordner erstellen. Wenn Sie das Projekt publizieren oder implementieren, wird der Inhalt des Ordners oder der Ordner zusammengefasst.

Sie können das EJB-Projekt nicht als Quellenordner verwenden, andernfalls werden Fehler produziert. Außerdem ist zu berücksichtigen, dass zwar mehr als ein Quellenordner in dem Projekt vorhanden sein darf, aber nur ein einziger dieser Quellenordner den Ordner META-INF enthalten darf, in dem sich 'MANIFEST.MF' und die Dateien des Implementierungsdeskriptors befinden.

Hinweis: Wenn Sie eine JAR-Datei für einen EJB-Client für das EJB-Modul erstellen, sind die Clientschnittstellenklassen für die Enterprise-Beans nicht im EJB-Projekt eingeschlossen, sondern in einem separaten JAR-Projekt für den EJB-Client. JAR-Projekte für einen EJB-Client werden im Projektexplorer als Java-Projekte unter dem Knoten Sonstige Projekte angezeigt.
EJB-Clientprojekte

Die EJB-Tools unterstützen für EJB-Module die Erstellung von JAR-Projekten für EJB-Client. Ein JAR-Projekt für EJB-Client enthält alle Schnittstellenklassen, die ein Clientprogramm benötigt, um die Clientsichten der Enterprise-Beans zu nutzen, die in dem EJB-Projekt enthalten sind. Wenn Sie ein EJB-Clientprojekt für ein EJB-Projekt erstellen, wird ein neues Java-Projekt erstellt und zum Arbeitsbereich hinzugefügt. Das EJB-Clientprojekt wird als Projektdienstprogramm in Form einer JAR-Datei zu den einzelnen Modulen hinzugefügt, zu denen das EJB-Projekt gehört.

Wenn Sie den Assistenten für die Erstellung eines EJB-Projekts verwendet, wird standardmäßig auch ein JAR-Projekt für EJB-Client erstellt. Sie können diese Option im Assistenten jedoch auch abwählen.

Tipp: Sie können auch das EJB-Clientprojekt in eine andere Unternehmensanwendung aufnehmen, die das EJB-Projekt nicht als Modul enthält. Dadurch wird sichergestellt, dass die JAR-Datei für EJB-Client zusammen mit der EAR-Datei exportiert und gepackt wird, wenn die Anwendung exportiert wird.
Enterprise-Beans

Eine Enterprise-Bean ist eine Java-Komponente, die mit anderen Ressourcen kombiniert werden kann, um verteilte Client/Server-Anwendungen zu erstellen.

Es gibt drei Arten von Enterprise-Beans: Session-Beans, Entity-Beans und nachrichtengesteuerte Beans. Generell werden alle Bean-Typen zusammen in einer Unternehmensanwendung verwendet.

Entity-Beans
Entity-Beans speichern permanente Daten. Entity-Beans mit über Container realisierter Transaktionspersistenz erfordern Datenbankverbindungen. Entity-Beans mit über JavaBeans realisierter Transaktionspersistenz verwalten permanente Daten in jeder beliebigen Art, die im Bean-Code festgelegt ist. Das wäre z. B. das Schreiben in Datenbanken oder XML-Dateien.
Session-Beans
Session-Beans erfordern keinen Datenbankzugriff, obwohl sie diesen indirekt (nach Bedarf) erhalten können, indem sie auf Entity-Beans zugreifen. Session-Beans können auch durch die Verwendung von Ressourcenreferenzen direkten Zugriff auf Datenbanken (und andere Ressourcen) erhalten.
Nachrichtengesteuerte Beans
Nachrichtengesteuerte Beans sind eine besondere Art von Enterprise-Beans, die als Nachrichtenkonsumenten im Messaging-System von Java Message Service (JMS) fungieren. Wie auch bei JMS-Standardnachrichtenkonsumenten führen nachrichtengesteuerte Beans Geschäftslogik auf der Basis des Nachrichteninhalts aus. Die dynamische Erstellung und Zuordnung von nachrichtengesteuerten Bean-Instanzen imitiert auf vielerlei Art das Verhalten von statusunabhängigen Session-Enterprise-Beans. Nachrichtengesteuerte Beans unterscheiden sich jedoch von statusunabhängigen Session-Enterprise-Beans (und anderen Typen von Enterprise-Beans) in mehrerer Hinsicht:
  • Nachrichtengesteuerte Beans verarbeiten mehrere JMS-Nachrichten asynchron, anstatt eine serialisierte Reihenfolge von Methodenaufrufen zu verarbeiten.
  • Nachrichtengesteuerte Beans haben keine Home-Schnittstelle oder ferne Schnittstelle, deshalb können interne oder externe Clients nicht direkt auf sie zugreifen.
Deploymentdeskriptoren

Ein Deploymentdeskriptor enthält Konfigurationsdaten, die die Laufzeitumgebung für eine Anwendung verwendet. Ein Deploymentdeskriptor kann folgende Informationen enthalten:

  • Die Struktur und den Inhalt (z. B. Enterprise-Beans) der Anwendung.
  • Verweise auf interne und externe Abhängigkeiten. Beispiel: Eine Enterprise-Bean in einem EJB-Modul kann eine andere Enterprise-Bean erfordern, die nicht in demselben Modul gebündelt ist.
  • Verweise auf Ressourcen-Factory-Objekte, wie URLs oder JDBC-Datenquellen.
  • Sicherheitsrollen, die der Container verwendet, wenn die erforderliche Zugriffssteuerung für die Anwendung implementiert wird.
  • Transaktionsorientierte Informationen darüber, wie (und ob) der Container Transaktionen für die Anwendung verwalten soll.

Implementierungsdeskriptoren sind XML-Dateien, die mit den Dateien der Anwendung in eine Java-Archivdatei gepackt werden. Ein EJB-Implementierungsdeskriptor verfügt über den Namen 'ejb-jar.xml' und befindet sich im Ordner META-INF eines EJB-Projekts. Eine J2EE-Anwendung enthält eine Deploymentdeskriptordatei auf Anwendungsebene, die die Anwendung als Ganzes regelt. Sie enthält außerdem mehrere Deploymentdeskriptoren auf Komponentenebene, und zwar einen für jedes Modul in der Anwendung.