Enterprise Java Beans Einführung



Ähnliche Dokumente
EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

FH LU JEE Vorlesung SS Ralf Gitzel

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

Installation von NetBeans inkl. Glassfish Anwendungs-Server

MailUtilities: Remote Deployment - Einführung

SE2-10-Entwurfsmuster-2 15

FH LU JEE Vorlesung SS Ralf Gitzel

Persistenz. Ralf Gitzel

Kalenderfunktion in Open-Xchange richtig nutzen (PC-Support)

Kleines Handbuch zur Fotogalerie der Pixel AG

Anleitung zur Webservice Entwicklung unter Eclipse

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

FORUM HANDREICHUNG (STAND: AUGUST 2013)

C++ mit Eclipse & GCC unter Windows

Speichern. Speichern unter

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

SANDBOXIE konfigurieren

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

SJ OFFICE - Update 3.0

Updatehinweise für die Version forma 5.5.5

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

How to do? Projekte - Zeiterfassung

Outlook Express: Einrichtung Account

Übungen zur Softwaretechnik

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Online Banking System

ORACLE Business Components for Java (BC4J) Marco Grawunder

Variablen & erweiterte Aktionen nutzen

HINWEISE ZUR ARBEIT IM LABOR

FH LU JEE Vorlesung SS Ralf Gitzel

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

teischl.com Software Design & Services e.u. office@teischl.com

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Step by Step Webserver unter Windows Server von Christian Bartl

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Upgrade-Leitfaden. Apparo Fast Edit. Wechsel von Version 2 auf Version oder Wechsel von Version auf Version 3.0.

Eine Anleitung, wie Sie Mozilla Thunderbird 2 installieren und konfigurieren können. Installation Erstkonfiguration... 4

News & RSS. Einleitung: Nachrichten er-(veröffentlichen) und bereitstellen Nachrichten erstellen und bereitstellen

teamsync Kurzanleitung

Technische Alternative elektronische Steuerungsgerätegesellschaft mbh. A-3872 Amaliendorf, Langestr. 124 Tel +43 (0)

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Das Handbuch zu KNetAttach. Orville Bennett Übersetzung: Thomas Bögel

Kurzanweisung für Google Analytics

Kurzeinführung Excel2App. Version 1.0.0

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.0.

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen

Ein Projekt mit JavaFX erstellen

Automatisiertes Testen von Java EE-Applikationen mit Arquillian

OutLook 2003 Konfiguration

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Kurzanleitung So geht s

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Lokale Installation von DotNetNuke 4 ohne IIS

:: Anleitung Hosting Server 1cloud.ch ::

AK Medientechnologien 05 Delegation

Hex Datei mit Atmel Studio 6 erstellen

Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier)

Android Remote Desktop & WEB

Enigmail Konfiguration

Kurzanleitung zur Softwareverteilung von BitDefender Produkten...2

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Fortgeschrittene Servlet- Techniken. Ralf Gitzel

Einrichten eines POP-Mailkontos unter Thunderbird Mail DE:

Outlook Vorlagen/Templates

OP-LOG

JSP vs. PHP. Ein persönlicher Vergleich. EQUIcon Software GmbH Jena, Jörg Spilling Frankfurter Treffen Agenda

Kurzanleitung OOVS. Reseller Interface. Allgemein

Schulung Marketing Engine Thema : CRM Übersicht Funktionen

Java Enterprise Architekturen Willkommen in der Realität

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

Praktikum Software Engineering

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Web Interface für Anwender

Howto. Einrichten des TREX Monitoring mit SAP Solution Manager Diagnostics

Dokumentation Typo3. tt - news - Nachrichtenmodul

Handbuch. Anlegen von Vermittlern, Gruppen und Anwendern. 1. Auflage. (Stand: )

ITT WEB-Service DEMO. Kurzbedienungsanleitung

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Android VHS - Weiterbildungskurs Ort: Sulingen

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Sametime Meetings - Taskreferenz

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Der Kalender im ipad

Umstieg auf Microsoft Exchange in der Fakultät 02

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Starten der Software unter Windows 7

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

DNS-325/-320 und FXP

Transkript:

Enterprise Java Beans Einführung Vorlesung 8 Ralf Gitzel ralf_gitzel@hotmail.de 1

Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2

Übersicht EJBs im JEE Umfeld Verschiedene Typen von EJBs Von der Javaklasse zur EJB Ein EJB-Projekt Hello World Session Bean 3

EJBs im JEE Umfeld Ralf Gitzel ralf_gitzel@hotmail.de 4

Motivation Was fehlt noch? Web Container ist sehr gut für die Darstellung geeignet Unterstützung für die eigentliche Geschäftslogik ist kaum vorhanden (d.h. man baut alles von Hand) Wir benötigen weitere Services für die einfache Erstellung der Geschäftslogik 5

EJB Architektur Request Web Container Response Servlet EJB Container DB Persistence Provider EJB 6

EJB Container (Application Server) Glassfish: Referenzimplementation von Sun JBoss: bekannter kommerzieller Open Source Server IBM Websphere Die Application Server enthalten typischerweise auch den Web Container 7

Was sind EJBs? Enterprise Java Beans Komponenten, die Funktionalität und Daten kapseln Nicht-geschäftsspezifische Aufgaben werden vom Container übernommen! 8

Beispiele - Abgrenzung Geschäftsspezifisch (Funktionales Design): Nicht Geschäftsspezifisch (Nicht-Funktionales Design): Personendatenbank Algorithmus für Buchempfehlungen Sudoko-Spiel Sicherheit Netzwerkverbindung Persistenz 9

Übersicht EJB Container Services Transaktion Persistenz Security Messaging Pooling Web Services 10

EJB Container Services (1) Transaktionen: Vermeidet Inkonsistenzen in den Daten durch gleichzeitigen Zugriff zweier Clients Security: Zugriffsbeschränkungen Persistenz: Speichern von Daten über den Persistence Provider Messaging: Nachrichtenversand zwischen Beans 11

EJB Container Services (2) Pooling: Wiederverwendung von Objekten aus Effizenzgründen Web Services: Zugriff auf Stateless Session Beans als Web Service 12

Argumente für EJB 3 Einfach einzusetzen Vielfältige Container Services Offener Standard mit breiter Herstellerunterstützung Stabile Implementierungen 13

Verschiedene Typen von EJBs Ralf Gitzel ralf_gitzel@hotmail.de 14

Die 3 Sorten EJBs Session Beans Message Driven Beans Geschäftslogik Geschäftslogik Entity Daten 15

Schematisches Beispiel einer Anwendung Web Container Request Response Person.jsp Personen Anzeige Personen EJB Container DB Persistence Provider Personensuche 16

Schematisches Beispiel einer Anwendung Web Container Person.jsp Controller Personen Anzeige View Personen EJB Container DB Persistence Provider Personensuche Daten Geschäftslogik (Model) 17

Session Beans Stateful vs. Stateless Typ des Interfaces Stateful: Merkt sich den Zustand der Bean Stateless: Zustandslos, jeder Aufruf wie neu Session Beans Remote Invocation Local Invocation Stateless Session Beans können auch als Web Service aufgerufen werden. 18

Message-Driven Beans Message Driven Beans Aufruf erfolgt über eine Nachricht, die von einem Message Server verschickt wurde Ansonsten der Session Bean nicht unähnlich Wird hier nicht weiter vertieft 19

Entity Entity Object-Relational Mapping (ORM) Persistence Manager Umwandlung Java-Objekt zu RDB Eintrag erfolgt automatisch DB 20

Von der Java-Klasse zur EJB Ralf Gitzel ralf_gitzel@hotmail.de 21

Metadata = Attribute Seit Java Version 5 kann man Metadaten zu Klassen, Methoden und Variablen hinzufügen Die Metadaten nennt man Attribute Werden in Paketen definiert Wir verwenden vordefinierte Attribute, die den Zugriff auf die EJB Container Services steuern 22

Metadaten Beispiel Wird wie eine Klasse importiert! Attribut Stateless 23

Java-Klasse zu EJB Erstellen eines Interfaces IBerechnung BerechnePreis() BerechneMwSt() = Interface Berechnung BerechnePreis() BerechneMwSt() Hinzufügen von Annotationen = SessionBean Berechnung BerechnePreis() BerechneMwSt() Java Klasse EJB 24

Dependency Injection Verwendung von Metadaten um aus normalen Java Klassen EJBs zu machen Ziel: Reduzierung der Kopplung zwischen den Komponenten Die schmutzigen Details des Erstellens einer Referenz etc. wird vom Container übernommen. 25

Gruppendiskussion Warum kann ich nicht einfach normal Objekte erzeugen, wenn ich EJBs verwende? Warum brauche ich ein Interface? Hinweis: s. Bild auf Folie 5 26

Gemeinsame Übung: Ein EJB Projekt anlegen Ralf Gitzel ralf_gitzel@hotmail.de 27

Grundlegende Bemerkungen 2 Projekte: Wir benötigen typischerweise ein EJB und Web Projekt als Paket Bündelung: Ein Enterprise Application Project kann beide als Unterprojekte enthalten 28

Enterprise Application Project 29

Einstellungen 5.0 Next 30

Module erzeugen Wir brauchen nur EJB und Web! 31

Module in einem JEE Projekt Klammer JEE Projekt XYZ Web Projekt XYZWeb EJB Projekt XYZEJB Darstellung Logik 32

Web Project konfigurieren Wie gehabt (s. die ersten Vorlesungen) Zusätzlich: Das EJB Project in den Buildpath aufnehmen (s. nächste Folie) javaee.jar in den Buildpath aufnehmen 33

Project in den Buildpath (Properties) Rechtsklick auf Web Project > Properties 34

javaee.jar Im Applicationserver-Verzeichnis (z.b. Glassfish, JBoss ) 35

EJB Projekt konfigurieren javaee.jar in den Buildpath einfügen Rechtsklick > Buildpath > Configure Buildpath (jar file liegt im lib ordner des Enterprise Application Servers, z.b. JBoss oder Glassfish!) 36

Add External JAR 37

javaee.jar Im Applicationserver-Verzeichnis (z.b. Glassfish, JBoss ) 38

Elemente des EJB Projekts Deployment Descriptor (optional): Kann anstelle der Metadaten verwendet werden, bzw. diese überschreiben EJBs (=ejbmodule) 39

Gemeinsame Übung: Hello World Session Bean Ralf Gitzel ralf_gitzel@hotmail.de 40

Hinweis Details werden die nächsten Male besprochen. Hier geht es nur um ein Hello World 41

Konzept EnterpriseIntroductionWeb (Dynamic Web Project) Servlet Zugriff EnterpriseIntroductionEJB (EJB Project) Interface IHelloUser Zugriff Session Bean HelloUser 42

Anzulegende Projekte Hauptprojekt mit 2 Unterprojekten 43

EJB anlegen 44

Das EJB Local Interface Wir definieren alle Methoden, die wir in der Session Bean implementieren wollen. Interessant: Ganz normales Interface! 45

Die EJB Klasse 46

Servlet anlegen 47

Das Servlet 48

Anmerkungen zum Servlet Wir verwenden eine Referenz auf das Interface um die EJB zu benutzen Durch die @EJB-Annotation wird der Referenz automatisch das passende Objekt zugewiesen. 49

Anwendung testen 50

Server einrichten Muss man evtl. machen um Glassfish als Option zu bekommen 51

Server einrichten 52

Server einrichten JDK konfigurieren 53

JDK konfigurieren Nicht durch das JRE irreführen lassen! 54

Server einrichten Neues JDK als JRE setzen und Pfad für den Application Server setzen 55

Evtl. Security Settings 56

Anwendung auswählen und Deployen 57

Hinweise Glassfish ist etwas temperamentvoll Manchmal ist es besser, wenn man den Server erst startet und dann deployed Generell gilt: Shutdown, Undeploy, Restart und Redeploy sind manchmal hilfreich, wenn es Probleme gibt, die man sich nicht erklären kann. 58

Anwendung läuft 59

Gruppendiskussion Was hat der Programmierer auf der nächsten Folie falsch gemacht? Was wird passieren, wenn man das Servlet startet? Wann kann hierdurch ein Problem entstehen? Hinweis: Wer dieses Problem versteht hat einen wichtigen EJB-Mechanismus verstanden! 60

Gruppendiskussion 61

Lernziele Ralf Gitzel ralf_gitzel@hotmail.de 62

Lernziele Unterschiede zwischen den Containern Arten von EJBs Was macht eine Javaklasse zu einer EJB? Dependency Injection Prinzip Enterprise Application Project anlegen können 63

Anhang Ralf Gitzel ralf_gitzel@hotmail.de 64

Auswahl des Servers Falls nicht in Liste 65

Probleme und Antworten Warum kriege ich eine NullPointerException bei Verwendung der Dependency Injection (z.b. mit @EJB)? Verwende ich die richtigen Versionen von EJB (3.0) und Servlets (2.5)? Manchmal ist Undeploy/Server-Stop/Server- Start/Deploy keine schlechte Idee. Was sagt das Glassfish/JBoss Server Log? Warum ist alles so langsam? Evtl. läuft der Server im Hintergrund und führt für jede Änderung ein Hot Deploy durch Server stoppen! 66