4 EJBs J2EE Schnelleinstieg by usr10478

VIEWS: 17 PAGES: 13

									                                                                          19

4 EJBs & J2EE:
  Schnelleinstieg *

Auch ohne bereits umfassende Kenntnisse über den Aufbau
verteilter Anwendungen und die Feinheiten der J2EE-Archi-
tektur zu besitzen, soll an dieser Stelle ein erster praktischer
Zugang zur Entwicklung von J2EE-Modulen, den Enterprise
JavaBeans (EJB), erprobt werden.

Der »Lebensraum« von EJBs ist ein J2EE-Applikationsserver.
Er organisiert den Zugang zu den EJB-Modulen durch An-
wendungen und Datenquellen und verwaltet ihren Lebens-
zyklus, lädt sie also bei Bedarf in den Arbeitsspeicher des
Serversystems, speichert sie zwischen oder beendet ihre
Nutzung.

Wenn Sie alle Beispiele praktisch nachvollziehen wollen,
dann müssen Sie alle notwendigen Software-Werkzeuge auf              !
Ihrem Computersystem installiert haben. Ist dies noch nicht
der Fall, dann gehen Sie entsprechend dem folgenden Wis-
sensbaustein vor:

  »Vor dem Start: Werkzeuge« (S. 17)

Kenntnisse für den Einstieg
Was müssen Sie für den Einstieg wissen?

Zunächst einige Erläuterungen zur verwendeten Terminolo-
gie. Bei verteilten Anwendungen im Rahmen der J2EE-Spezi-
fikation werden in den Beispielen dieses Buches zwei Arten
von Client-Anwendungen verwendet, um serverseitig bereit-
gestellte Programme aufzurufen:

  Java-Anwendungen, die über die Grenzen von JVMs hin-
  weg EJBs auf einem Server ausführen und
  Web-Anwendungen, die über einen Web-Browser server-
  seitigen Java-Code ausführen. In einem solchen Fall wird
  z.B. über die Kombination JSP/Servlet und JavaBean auf
  EJBs zugegriffen.

Ein Eclipse-J2EE-Projekt fasst die verschiedenen, auf einem        Eclipse-Projekt
Server bereitgestellten Teile einer Java Enterprise-Anwen-
dung als Projektmodule zusammen. Dabei kommen Web-


                                                               Gruppierung
   20            4 Schnelleinstieg *


                 Projektmodule, EJB-Projektmodule und Enterprise-Projekt-
                 module zum Einsatz.

    EJB-Modul    Eine Enterprise JavaBean besteht aus einer Bean-Klasse, in
                 der der Programmierer die Geschäftslogik implementiert,
                 und mehreren Schnittstellen und Hilfsklassen. Die Bean-
                 Klasse wird im Folgenden als Implementierungsklasse be-
                 zeichnet, während für den Zusammenhang aller notwen-
                 digen Klassen einer EJB der Begriff EJB-Modul verwendet
                 wird.

                 Die Schnittstellen eines EJB-Moduls werden benötigt, um
                 die Implementierungsklasse in den Organisationszusam-
                 menhang eines J2EE-Applikationsservers einzubetten.

                 Der Applikationsserver stellt bei Bedarf Systemressourcen
                 wie Datenbank-Konnektoren oder einen Authentifizierungs-
                 kontext zur Verfügung. Der Gesamtzusammenhang von
                 Client-Anwendungen, EJB-Modulen und bereitgestellten Sys-
                 temressourcen wird hier als J2EE-Anwendung bezeichnet.

                 Das Lomboz-Werkzeug – ein Plugin der Eclipse-Entwick-
                 lungsumgebung – unterstützt den J2EE-Entwickler nun
                 gleich auf mehrere Arten.

                 Mithilfe von Assistenten-Programmen (Wizards) kann zu-
                 nächst der Rumpf der Implementierungsklasse des EJB-Mo-
                 duls erzeugt werden. Der Programmierer kann diesen Rumpf
                 durch eigene Attribute und Methoden der Geschäftslogik be-
                 liebig erweitern.

                 Nach Abschluss der Programmierung unterstützt das Lom-
                 boz-Werkzeug dann durch das automatische Erstellen der
                 notwendigen Schnittstellen und Hilfsklassen und bei der Zu-
                 sammenstellung der für das Deployment des EJB-Moduls an
                 den J2EE-Applikationsserver erforderlichen Deployment-In-
                 formationen (deployment descriptors) .

      Beispiel   Als einführendes Beispiel soll das Lesen der Zeit auf dem
  ServerZeit-    Server und danach die Anzeige der Zeit auf dem Client ver-
        Holen
                 wendet werden.

                 Die Kombination eines UML-Verteilungsdiagramms mit ei-
                 ner Darstellung der verwendeten Java-Klassen des Beispiel-




Gruppierung
                                                     4 Schnelleinstieg *        21

projekts zeigt die Ausgangsfragestellung (Abb. 4.0-1) der
Beispielanwendung ServerZeitHolen.



 Java-Client:JVM 1                       JBoss Applikationsserver:JVM 2

                                                     EJB-Container
                                                          « class »


        « class »
                               ?                     ServerInfoBean

                                                     -zeitdatum
   ServerZeitHolen
                                                     -holeServerZeit()
   -getContext()                                     -setZeitdatum()
   -getHome()                                        +getZeitdatum()
   +holeServerZeit()


Legende:            Methodenaufruf/Attributabfrage

Abb. 4.0-1: Beispielanwendung ServerZeitHolen.


Wie wird ein EJB-Modul durch eine Client-Anwendung aufge-
rufen?

Es handelt sich bei der Anwendung ServerZeitHolen um eine
Java-Client-Anwendung, die über die Grenzen der Client-JVM
(JVM1) auf Methoden der EJB ServerInfoBean zugreift und den
Wert des Attributs zeitdatum zurückliefert (JVM2). An diesem
Beispiel sollen die grundlegenden Abläufe beim entfernten
Zugriff auf eine EJB gezeigt werden, insbesondere soll ge-
klärt werden, welche Rolle der EJB-Container des Applika-
tionsservers dabei spielt. Darüber hinaus soll der Entwick-
lungsprozess von Client-Anwendung und EJB in Eclipse ge-
nauer betrachtet werden.

Wie funktioniert nun das Management des EJB-Containers in
Bezug auf das EJB-Modul?

Die gepunkteten Pfeillinien in Abb. 4.0-2 verdeutlichen die
Methodenaufrufe bzw. Attributsabfragen des EJB-Moduls
durch die Java-Anwendung. Hierbei ist insbesondere die Ver-
mittlerposition des EJB-Containers zwischen Java-Anwen-
dung und EJB-Modul über die verwendeten Schnittstellen zu
beachten.



                                                                           Gruppierung
    22               4 Schnelleinstieg *



  Java-Client:JVM 1             JBoss Applikationsserver:JVM 2

                                                         EJB-Container
                                                       Management
                                                             (3)                         « implement »
                                                                       « class »
                                                               ServerInfoBean
                                (2)    Schnittstelle
                                      ServerInfo                   +getZeitdatum()
        « class »
                                         « implement »                                  Schnittstelle
                                                              « extend »
   ServerZeitHolen                                                                SessionBean
                                (1)         Schnittstelle
   -getContext()
   -getHome()                         ServerinfoHome                              « implement »

   +holeServerZeit()                                                  « class »
                                                             ServerInfoSession


  Legende:           Management des EJB-Containers


                     Abb. 4.0-2: Überblick über Nutzung der J2EE-Anwendung
                     ServerZeitHolen/ServerInfo (EJB-Modul).



       Zeitinfo      Die Java-Anwendung führt nacheinander drei Operationen
       abrufen       aus:

               (1)   Die Operation getContext() fragt über die Schnittstelle
                     ServerInfoHome den Computernamen und den Namen des EJB-
                     Moduls ab und beauftragt den EJB-Container zur Bereitstel-
                     lung des EJB-Moduls für die Anwendung.

               (2)   Nachfolgend ermöglicht die Operation getHome() der Anwen-
                     dung Zugriff auf die Schnittstelle ServerInfo.

               (3)   Schließlich führt der EJB-Container vermittelt über diese
                     Schnittstelle die Geschäftsmethoden – hier die Operation
                     getZeitdatum() – der Implementierungsklasse ServerInfoBean
                     des EJB-Moduls aus. Der Aufrufmechanismus von EJB-Modu-
                     len wird in »Anwendung ruft EJB« (S. 32) näher erläutert.

                     Das Deployment des fertigen EJB-Moduls geschieht – wie
                     auch sonst bei Java üblich – durch Java-Archive.

                     Bei J2EE-Anwendungen werden die einzelnen Komponen-
                     ten allerdings getrennt verpackt, die Java-Klassen in EJB-Ar-
                     chiven (JAR), mögliche Web-Anwendungen in Webarchiven




Gruppierung
                                                     4 Schnelleinstieg *                23

(WAR) und alles zusammen dann in einem Enterprise-Archiv
(EAR).

Damit der Applikationsserver mit den Paketen, die an ihn                          »Versand-
ausgeliefert werden, etwas anfangen kann, müssen Deploy-                          papiere«

ment-Informationen an ihn mitgegeben werden. Diese »Ver-
sandpapiere« werden grundsätzlich im Datenformat XML
abgespeichert.



             Java-Client:JVM 1                     JBoss Applikationsserver:JVM 2
Anwender

              ServerZeitHolen                             ServerInfo:EJB-Modul



                            Programm                                       Deployment
                            ausführen                                      EJB-Modul


              Entwicklungscomputer
Entwickler                         « component »
                                                                      Deployment
                         Eclipse IDE: Lomboz-Plugin
                                                                      Descriptors
                                   Autom. Erstellen der EJB-Klassen    ejb-jar.xml
                    « class »                     « interface »        jboss.xml
                                             ServerInfoSession
                ServerZeitHolen                                 Klassenrumpf erstellen
                                    « interface »
                Client-Anwendung     ServerInfo                           « class »
                                                      « interface »
                erstellen                      ServerInfoHome         ServerInfoBean



Abb. 4.0-3: Projektentwicklung und Deployment mit der Eclipse-IDE.


Auch diese Aufgaben übernimmt das Entwicklungswerkzeug
Lomboz in Eclipse (siehe Abb. 4.0-3). Sie werden die ver-
schiedenen Deployment-Dateien im Verlaufe des Buchs nä-
her kennenlernen, einige davon auch selbst erstellen. Für
den Einstieg sind tiefere Kenntnisse darüber aber noch nicht
erforderlich.

Um ein lauffähiges EJB-Modul zur Ausführung ihrer Pro-
grammsequenzen zu bewegen, benötigen Sie jetzt noch eine
Client-Anwendung, die es über den J2EE-Applikationsserver
(EJB-Container) anspricht.




                                                                             Gruppierung
24          4 Schnelleinstieg *


            Fürs erste kann eine einfache Java-Anwendung ohne um-
            fangreiche Benutzungsoberfläche dazu verwendet werden.
            Später lernen Sie zusätzliche andere, Web-basierte Anwen-
            dungen kennen.

            Der Schnelleinstieg in der Übersicht
            Auch für den Schnelleinstieg, wie für die Arbeit mit verschie-
            denen Entwicklungswerkzeugen im Allgemeinen, ist eine gu-
            te Systematik wichtig.

            Lernen Sie Schritt für Schritt die grundlegenden Funktio-
            nen des Lomboz-Werkzeugs bei der Erarbeitung eines ersten
            J2EE-Projekts kennen.

            Die Wissensbausteine des Schnelleinstiegs behandeln die
            folgenden Themen:

              »Das erste J2EE-Projekt« (S. 25)
              »Anwendung ruft EJB« (S. 32)
              »Die erste EJB-Methode« (S. 38)

  Glossar   deployment       (deployment) be-    gen. Es handelt sich um XML-Da-
            zeichnet die Auslieferung von Er-    teien, die Informationen und In-
            gebnissen der Softwareentwick-       stallationsanweisungen für Server-
            lung an eine installierende Ser-     anwendungen enthalten, die die-
            veranwendung. Bei der Entwick-       se Anwendungen für eine Nutzung
            lung von Enterprise-Anwendungen      durch Anwender bereitstellen sol-
            werden aus den Entwicklungs-         len. Syn.: Auslieferungs- und In-
            ergebnissen verschiedene Archi-      stallations-Beschreibung
            ve erzeugt, denen Installations-     XML (XML; eXtensible Markup
            und Nutzungsanweisungen beige-       Language) 1 Universell einsetzba-
            fügt sind. Diese Anweisungen wer-    re Sprache zum Austausch struktu-
            den in XML-Schemata gefasst und      rierter Informationen. Basiert – wie
            in XML-Dateien abgelegt. Sie wer-    die Standard Generalized Markup
            den deployment descriptors, also     Language (SGML) – auf der Tren-
            als Auslieferungs- und Installati-   nung von Inhalt und Struktur.
            ons-Beschreibungen bezeichnet.       2 Eine Sprache (oder Meta-Sprache)
            deployment descriptor (deploy-       zur Beschreibung der inhaltlichen
            ment descriptor) sind Dateinen       Struktur von Dokumenten. XML ist
            mit Installations- und Nutzungs-     ein W3C-Standard und in der In-
            anweisungen für Serveranwendun-      dustrie inzwischen weit verbreitet.




Basistext
                               4.1 Das erste J2EE-Projekt *            25

4.1 Schnelleinstieg: Das erste J2EE-
    Projekt *

Die Beispielanwendung ErstesProjekt zeigt den struktu-
rellen Aufbau eines einfachen J2EE-Projekts. Die Bei-
spiel-EJB ist gekennzeichnet durch Kapselung und Ein-
bettung in den Organisationszusammenhang des EJB-
Containers des JBoss-Applikationsservers, der durch
lokale oder entfernte Methodenaufrufe angesprochen
werden kann.

Beispiel-EJB: Zeitauskunft

Um den Einstieg in die Arbeit mit J2EE-Anwendungen zu
erleichtern, sollen anhand eines vorgefertigten kleinen Bei-
spielprojektes die Grundstrukturen von EJB-Programmen ge-
zeigt werden. Damit erhalten Sie eine stabile Basis für Ihre
ersten J2EE-Schritte und können das Projekt später selbst
weiter ausbauen.

Es handelt sich dabei um eine einfache Java-Anwendung, die
über eine EJB eine Zeitauskunft (Serverzeit) abruft und auf
der Systemkonsole anzeigt.

Neben der Erläuterung der am Projekt beteiligten Kompo-
nenten geht es hier exemplarisch auch um die Arbeitsschrit-
te von der Entwicklung einer Anwendung über die Ausliefe-
rung bis zur Lauffähigkeit.

Als Applikationsserver wird der zuvor ausgewählte und ein-
gerichtete JBoss-Server verwendet.

Laden Sie das Beispielprojekt ErstesProjekt – wie in dem kos-   Beispiel-
tenlosen e-learning-Kurs zu diesem Buch beschrieben – auf       projekt

Ihr Computersystem herunter und importieren Sie es in Ihre
Eclipse-Arbeitsumgebung (workspace).

Verschaffen Sie sich einen ersten Überblick über das Bei-
spielprojekt. Im Ordner ErstesProjekt/src finden Sie den
Quellcode der EJB und der Java-Anwendung.

Bestandteile des Beispielprojekts

Die Anwendung besteht aus einem EJB-Modul ServerInfo und
einer Java-Anwendung, die diese EJB über den Applikations-



                                                              Basistext
    26                     4 Schnelleinstieg *


                           server aufruft. In dem modifizierten Klassendiagramm in
                           Abb. 4.1-1 wird der detaillierte Aufbau des EJB-Moduls ge-
                           zeigt.


                                             EJB-Container
                      « implement »


           « interface »            « interface »            « class »
           EJBHome                 EJBObject           ServerInfoBean
                                                                                « implement »
                                                       -zeitdatum
                   « extend »
                                « extend »
                                                       -holeServerZeit()
             « interface »                             -setZeitdatum(...)
           ServerInfo                                  +getZeitdatum()
                                                                                  « interface »
                                                                   « extend »
      -holeServerZeit()                                                         SessionBean
      +getZeitdatum(...)                                    « class »
                                                      ServerInfoSession
                                 « interface »
                             ServerInfoHome          +ejbCreate()
                                                     +ejbRemove()
                             +COMP_NAME              +setSessionContext(...)    « implement »
                             +JNDI_NAME              +ejbActivate()
                             +create()               +ejbPassivate()

Legende:             Management des EJB-Containers                Methodenaufruf/Attributabfrage


                           Abb. 4.1-1: Modifiziertes Klassendiagramm des EJB-Moduls ServerInfo
                           unter der Verwaltung des EJB-Containers.


       Beispiel              Die Implementierungsklasse ServerInfoBean des EJB-Moduls
ServerInfoBean               ist kurz und übersichtlich. Sie implementiert die Schnitt-
                             stelle SessionBean und definiert das Attribut zeitdatum, die
                             Methode holeServerZeit() sowie die get- und set-Methoden
                             für das Attribut zeitdatum.
                             package com.erstesprojekt.ejb;

                             import javax.ejb.SessionBean;
                             import java.text.SimpleDateFormat;
                             import java.util.Date;

                             // (durch Lomboz generierte EJB)

                             /**
                              * @ejb.bean name="ServerInfo"
                              *      jndi-name="ServerInfoBean"
                              *      type="Stateless"
                              *
                              **/




    Basistext
                                   4.1 Das erste J2EE-Projekt *          27

public abstract class ServerInfoBean
   implements SessionBean
{
   // Attribut initialisieren
   private String zeitdatum = "";

    // Datum und Zeit vom Server holen und formatieren
    // Rueckgabe des Datums als Zeichenkette
    // im Format: JJJJ-MM-TT SS:MM
    private void holeServerZeit()
    {
       Date now = new Date();
       SimpleDateFormat formatter =
          new SimpleDateFormat( "yyyy-MM-dd HH:mm" );
       setZeitdatum(formatter.format(now));
    }

    // get zeitdatum
    // (Methode mit Lomboz erstellt)

    /**
    * @ejb.interface-method
    *     view-type="both"
    **/
    public String getZeitdatum()
    {
        holeServerZeit();
        return zeitdatum;
    }

    // set zeitdatum
    private void setZeitdatum(String zd)
    {
       zeitdatum = zd;
    }
}


Die Aufgabe, die in der Methode getZeitdatum() bearbeitet
wird, ist das Erstellen und Formatieren einer Zeichenkette
mit dem aktuellem Datum und der Zeit über die Methode
holeServerZeit().

Das Attribut zeitdatum ist private deklariert und wird über        Kapselung
eine öffentliche get-Methode angesprochen. Die zugehörige
set-Methode wie auch die Methode holeServerZeit() werden
dagegen nur innerhalb der Implementierungsklasse verwen-
det.

Sie finden in den Kommentarzeilen innerhalb der Klasse ei-
nige Anweisungen, die elementar für das automatische Ge-



                                                                  Basistext
 28              4 Schnelleinstieg *


                 nerieren der EJB-Klassen durch das Lomboz-Werkzeug sind.
                 Diese Anweisungen werden mit @ejb.bean bzw. @ejb.interface
                 eingeleitet. Danach folgen meist verschiedene Parameter
                 wie name oder type.

                 Was es mit diesen Anweisungen genau auf sich hat, wird an
                 späterer Stelle erläutert (siehe dazu »Scripting« (S. 82)). Die
                 Anweisungen werden bei Erstellen von EJB-Klassen und Me-
                 thoden durch das Lomboz-Werkzeug automatisch erzeugt.

  Aufruf über    Die Kapselung der EJB muss unter zwei Gesichtspunkten ge-
Schnittstellen   sehen werden, einerseits werden die Attribute und Metho-
                 den nur durch öffentlich deklarierte Methoden von außen
                 angesprochen, andererseits werden die Methoden dieser EJB
                 nicht direkt durch eine Client-Anwendung aufgerufen, son-
                 dern immer vermittelt über ihre Schnittstellen.

                 Der Applikationsserver allein organisiert im Containerma-
                 nagement den »Lebenszyklus« einer EJB, d.h. er startet, ak-
                 tiviert, deaktiviert und entfernt bei Bedarf die EJB in und aus
                 seinem Aktionsraum, dem EJB-Container.

                 Drei Schnittstellen
                 Der Aufruf von Methoden des EJB-Moduls durch ei-
                 ne Anwendung wird über die beiden Schnittstellen
                 ServerInfo – auch als Remote-Schnittstelle bezeichnet – und
                 ServerInfoHome – auch als Home-Schnittstelle bezeichnet –
                 vermittelt. Sie finden diese Klassen im Projektordner unter
                 ErstesProjekt/ejbsrc/com.erstesprojekt.ejb .

                 Die Home-Schnittstelle liefert zunächst den Computerna-
                 men und den Java-Namen des EJB-Moduls an die Anwendung
                 und weist den Applikationsserver über die Methode create()
                 an, das Modul für die Anwendung bereitzustellen.

                 Die Remote-Schnittstelle ServerInfo deklariert alle Methoden
                 der Implementierungsklasse abstrakt. Sie dient damit als
                 Vermittler der Methodenaufrufe der Geschäftslogik des EJB-
                 Moduls.

                 Beide Schnittstellen erweitern die allgemeinen Schnittstel-
                 len EJBHome und EJBObject, die durch Klassen des EJB-Contai-
                 ners implementiert werden (Abb. 4.1-1).




 Basistext
                               4.1 Das erste J2EE-Projekt *              29

Eine weitere Schnittstelle SessionBean deklariert Methoden
zur Verwaltung des Lebenszyklus’ des EJB-Moduls im EJB-
Container durch den Applikationsserver. Diese Schnittstelle
wird durch die Klasse ServerInfoSession, die die Implemen-
tierungsklasse ServerInfoBean erweitert, implementiert.

Beachten Sie, dass die Methoden der Schnittstelle SessionBean
durch den EJB-Container verwendet werden. Überlassen Sie
also dem EJB-Container seine Arbeit und konzentrieren Sie
sich bei diesem Beispielprojekt zunächst auf die anderen ge-
nannten EJB-Klassen.

Sichten Sie in Eclipse die Home und Remote-Schnittstellen
des Projektbeispiels und vergleichen Sie sie mit dem Aufbau
der oben angegebenen Implementierungsklasse SessionBean.

Lokaler oder externer Aufruf von EJBs
Bei Durchführung der Übung werden Sie festgestellt haben,
dass sich in dem Projektordner ErstesProjekt/ejbsrc noch
weitere Schnittstellen und Hilfsklassen befinden. Insbeson-
dere finden Sie dort zwei »Schwesterklassen« der genannten
Schnittstellen, ServerInfoLocal und ServerInfoLocalHome.

Ein Vergleich mit den beiden Schnittstellen aus der Übung
zeigt, dass sie die gleichen Aufgaben haben und sich die
Erstgenannten nur durch den Einbezug der Ausnahmebe-
handlung java.rmi.RemoteException von den lokalen Schnitt-
stellen unterscheiden.

Hintergrund dafür ist die Möglichkeit, eine EJB aus der un-      local
mittelbaren Nähe, d.h. lokal (local) oder aber aus der Ferne
(remote) anzusprechen. Nah und fern definieren sich einfach
über die gleiche oder unterschiedliche Java-Laufzeitumge-
bungen (JVM) unter der Java-Anwendung und EJB-Container
arbeiten (Abb. 4.1-2). Beim entfernten Methodenaufruf kann
noch der Aufruf über mehrere JVMs hinweg und von ei-
nem Methodenaufruf über die Grenzen eines oder mehrerer
Computersysteme hinweg in einem Computernetzwerk un-
terschieden werden.

Um welche Art von Anwendung handelt es sich bei diesem           externer Aufruf
kleinen Beispiel?




                                                                Basistext
  30              4 Schnelleinstieg *



Java-Client:JVM 1            JBoss Applikationsserver:JVM 2

                                                      EJB-Container
                                                    Management
                                                          (3)                         « implement »
                                                                    « class »
                                                            ServerInfoBean
                             (2)    Schnittstelle
                                   ServerInfo                   +getZeitdatum()
      « class »
                                      « implement »                                  Schnittstelle
                                                           « extend »
 ServerZeitHolen                                                               SessionBean
                             (1)         Schnittstelle
 -getContext()
 -getHome()                        ServerinfoHome                              « implement »

 +holeServerZeit()                                                 « class »
                                                          ServerInfoSession


Legende:          Management des EJB-Containers


                  Abb. 4.1-2: Überblick über Nutzung der J2EE-Anwendung
                  ServerZeitHolen/ServerInfo (EJB-Modul).



                  Im Beispielprojekt wird ein externer Aufruf von EJB-Metho-
                  den ausgeführt. Der Applikationsserver und die Java-Anwen-
                  dung laufen zwar auf demselben Computersystem, jedoch
                  in unterschiedlichen Java-Laufzeitumgebungen. Das bedeu-
                  tet, dass die Parameterübergabe beim Methodenaufruf nach
                  Wert (call by value) erfolgt und nicht wie beim lokalen Auf-
                  ruf nach Referenz (call by reference). Es handelt sich da-
                  her um eine lose Bindung zwischen aufrufender Anwendung
                  und EJB-Modul.

                  Deployment des EJB-Moduls an den
                  Applikationsserver

                  Schließlich müssen die Ergebnisse der Programmierung so-
                  wie Informationen zu Nutzung und Installation der J2EE-An-
                  wendung noch an den angeschlossenen Applikationsserver
                  ausgeliefert und installiert werden. Da die notwendigen EJB-
                  Klassen in diesem Beispiel bereits vorhanden und in einem
                  EJB-Archiv zusammengestellt wurden und auch die EJB-De-
                  ployment Descriptors schon vorliegen, wählen Sie nun mit
                  der Maus den Projektordner ErstesProjekt/ErstesProjektEAR
                  aus.



  Basistext
                                      4.1 Das erste J2EE-Projekt *                   31

EAR steht dabei für Enterprise Archive, in dem alle J2EE-Res-
sourcen und Deployment Descriptors für die Auslieferung an
den Applikationsserver gesammelt werden.

Mit einem rechten Maus-Klick auf diesen Ordner erreichen
Sie das J2EE-Kontextmenü des Lomboz-Werkzeugs und kön-
nen nun das Deployment durch Auswahl des Menüpunktes
Lomboz J2EE... - Deploy Module ausführen (Abb. 4.1-3).




Abb. 4.1-3: Auslieferung von EJB-Modulen mit Lomboz J2EE-Funktionen.


Die J2EE-Anwendung, verpackt in der EAR-Datei, wird in das
Installationsverzeichnis
c:\j2ee\appserver\jboss\server\default\deploy kopiert.

Dabei ist es unerheblich, ob der JBoss-Server bereits gestar-
tet wurde oder nicht. JBoss überprüft auch nach dem Start
dieses Verzeichnis in regelmäßigen Abständen auf Verän-
derungen und führt gegebenenfalls eine neue Auslieferung
auch im laufenden Betrieb durch (Hot Deployment). Weiter-
führende Informationen zum Deployment finden Sie in »De-
ployment« (S. 73).

/Rupp 05/                                                                  Literatur

EJB-Container (EJB container) Ei-     JVM (JVM; Java Virtuelle Maschine)   Glossar
ne Spezifikation (kein Produkt) für   Bezeichnung für Java-Interpreter,
eine Umgebung, in der EJBs ab-        die den Java-Bytecode zur Lauf-
laufen können. Ein EJB-Container      zeit analysieren und interpretie-
läuft als Anwendung auf einem         ren. Syn.: Java virtual machine,
J2EE-Server.                          VM, Virtuelle Machine




                                                                       Basistext

								
To top