Anwendung eines Enterprise Java Beans

Werbung
Einleitung
Dateien
Anwendung eines Enterprise Java Beans
EJB Server
EJB Container
Remote Interface
Home Interface
EJB Object
Der EJB Container kümmert sich um die Kommunikation
des Beans mit anderen Komponenten, wobei er das Home
und das Remote Interface benutzt.
Einleitung
Mehrschichtenmodell (Multi Tier)
Dateien
Client Tier
Browser
Web Tier
JSP Program
Enterprise Java
Beans Tier
Enterprise Information
Systems Tier
EJB
Data Source
Bestandteile einer J2EE Applikation (1)
Einleitung
(Quelle: Alexander Dunn, Java 2EEE, dtv, 2001)
Dateien
Hersteller
HerstellerPK
META-INF
hersteller-webapp
HerstellerHome
HerstellerBean
ejb-jar.xml
META-INF
Hersteller.jar
application .xml
orion/applications/Hersteller
WEB-INF
Test.jsp
web.xml
Bestandteile einer J2EE Applikation (2)
(Quelle: Alexander Dunn, Java 2EEE, dtv, 2001)
Einleitung
Server-spezifische Konfigurationsdateien
Dateien
orion/config
default-web-site.xml
z.B.:
• Einstellen des Ports
• Adresse des jar-Files
wenn es von eine jspSeite aufgerufen wird
data-sources.xml
z.B.:
Auswahl der Datenbank
server.xml
z.B.:
Adresse des jar-Files
Einleitung
Dateien
Hersteller (Remote Interface)
• Definiert alle Methoden die vom Client zum Arbeiten mit
den Bean benötigt werden
• Hier:
– public String getHerstellerName()
– public void setHerstellerName(String name)
• Das Remote Interface implementiert das Interface
EJBObject (aus dem Paket javax.ejb)
• java.rmi.RemoteException: Diese Ausnahme wird bei
kommunikationsbedingten Problemen aufgeworfen. (rmi:
remote method invocation)
Einleitung
Dateien
HerstellerHome (Home Interface)
• Erweitert das Interface EJBHome (aus dem Paket
javax.ejb)
• Erlaubt das Anlegen, Finden und Entfernen von EJB
Objekten
• CreateException: muss in allen create-Methoden
deklariert werde
• FinderException: muss in allen find-Methoden deklariert
werden
• RemoteException: Diese Ausnahme wird bei
kommunikationsbedingten Problemen aufgeworfen
Einleitung
Dateien
HerstellerBean
• Dient zum Einfügen, Ändern und Entfernen von Daten
• Implementiert das Interface EntityBean (aus der Klasse
javax.ejb)
• Der Client-Aufruf der create()-Methode des EJBHome
veranlasst den Container die ejbCreate()-Methode
aufzurufen
Einleitung
Dateien
HerstellerPK (Primärschlüsselklasse)
• Zuordnung der Datenbankelemente zu den Bean-Feldern
• Alle Objekte die java.io.Serializable implementieren sind
serialisierbar. Bei der Serialisierung werden Objekte in
einen Bytestream übersetzt und übertragen
Einleitung
Dateien
ejb-jar.xml (Deployment Descriptor)
•
•
<ejb-jar>
<enterprise-beans>
•
•
•
•
•
•
•
•
•
<description>
<ejb-name>
<home>
<remote>
<ejb-class>
<persistence-type>
<prim-key-class>
<reentrant>
<cmp-field>
• <field-name>
<resource-ref>
• <res-ref-name>
• <res-type>
• <res-auth>
•
Wurzelelement
3 Subelemente: <enitity><session>
<message-driven>
Beanbeschreibung
Name des Beans
Name des Home Interface (mit Pfadangabe)
Name des Remote Interface (mit Pfadangabe)
Name der Entity EJB Klasse (mit Pfadangabe)
Persistenztyp (Container- oder Bean-verwaltet)
Primärschlüsselklasse (bei Entity Beans)
Rekursive Aufrufe zulässig?
Felder die vom Container verwaltet werden
Feldname
Regelt den Datenbankzugriff
Name der Verbindung
Art der Verbindung
Legt fest wer die Authentifizierung durchführt
Einleitung
Dateien
data-sources.xml
In dieser Datei finden sich alle notwendigen Informationen zur
verwendeten Datenbank. (Klassenname, Typ, Treiber etc.)
• <data-sources>
• <data-source>
class
name
location
xa-location
ejb-location
connection-driver
username
password
url
inactivity-timeout
connection-retry-interval
Konfiguration der Datenquellen
Installierte Datenquelle
Klassenname
Angezeigter Name
JNDI-Pfad
Klassenname des JDBC-Treibers
Benutzername für Login
Passwort für Login
Cache für nicht genutzte Informationen
Wartezeit für neuen
Verbindungsversuch
Einleitung
Dateien
application.xml
Application Deployment Descriptor. Gibt dem Server
Informationen über das JAR-File.
• <application>
Wurzelelement
• <display-name>
Gibt den Applikationsnamen an
• <module>
ejb, java oder web-Element
• <ejb>
URI des ejb.jar
• <web>
WEB-URI
URI eines Web Application Files
• <web-uri>
• <context-root>
Context Root der Applikation
Einleitung
Dateien
server.xml
Konfiguration für den Application Server
• <application-server>
Wurzelelement
application-directory
Verzeichnis für Applikationen
deployment-directory Deployment Informatioen
• <application>
name
Bezeichner der Applikation
path
Pfadangabe
auto-start
Automatischer Start
Einleitung
Dateien
Test.jsp
Diese jsp-Seite erzeugt einen Eintrag in der Datenbank und liest
ihn wieder aus. Der Wert wird vom Browser mittels HTML
ausgegeben.
new InitialContext():
jndiContext.lookup(): Suchen des Objekts über seinen jndiNamen
herstellerHome.create(): Erzeugen eines Herstellerobjekts
(liefert EJB Remote zurück)
HerstellerHome herstellerHome = (HerstellerHome)
javax.rmi.PortableRemoteObject.narrow(ref,
HerstellerHome.class):
instanziiert eine Remote-Referenz auf das Home Interface
RMI (Remote Method Invocation)
Nachrichten an entfernte Objekte senden und die
Antworten empfangen.
JNDI Java Naming and Directory Interface
Dient zum Zugriff auf beliebige Namens- und
Verzeichnisdienste.
Namensdienst: Liefert ein Objekt zu einem Namen
(Beispiel: DNS)
Verzeichnisdienst: Stellt Information in einer hierarchischen
Struktur zur Verfügung
JNDI-Context: Namensraum in dem jedes Objekt durch
einen eindeutigen Namen gekennzeichnet ist
InitialContext: Einstiegspunkt zur Suche von Objekten
Für jedes Deployment einer Bean ist ein Home-InterfaceObject in JNDI eingetragen und somit für den Client
verfügbar
Der Container bietet eine JNDI-Environment
Herunterladen