Informationsintegration und Web-Portale. Tutorial: Enterprise Java Beans. Erik Buchmann



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

EJB jar.xml und Name Service (JNDI)

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

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Anleitung zur Webservice Entwicklung unter Eclipse

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Objektorientierter Systementwurf mit Java

Enterprise Java Beans

Der lokale und verteilte Fall

Anwendung eines Enterprise Java Beans

Enterprise Java Beans Einführung

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Oracle: Abstrakte Datentypen:

Java Database Connectivity (JDBC) Walther Rathenau Gewerbeschule 1

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

Enterprise java beans step-by-step

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

6.9 Java Server Pages

WebService in Java SE und EE

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

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

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

OP-LOG

WhiteStarUML Tutorial

Labor 3 - Datenbank mit MySQL

Datenbank und Informationssysteme

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Datenbanken für Online Untersuchungen

Referenzielle Integrität SQL

Große Übung Praktische Informatik 1

Android Remote Desktop & WEB

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Datenmanagement in Android-Apps. 16. Mai 2013

Tutorial Einrichtung eines lokalen MySQL-Servers für den Offline-Betrieb unter LiveView

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

25 Import der Beispiele

Projektbericht Gruppe 12. Datenbanksysteme WS 05/ 06. Gruppe 12. Martin Tintel Tatjana Triebl. Seite 1 von 11

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

ORACLE Business Components for Java (BC4J) Marco Grawunder

Zählen von Objekten einer bestimmten Klasse

Innovator 11 classix. Enterprise JavaBeans (EJB) für JBuilder. Connect. Alexander Borschet.

Es wird das Struts <html:option> Element erläutert und anhand von kleinen Beispielen der Umgang veranschaulicht.

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

Etablierung serviceorientierter Architekturen mit Web Services

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

How-to: HTTP Proxy mit Radius Authentifizierung an einem Windows 2003 Server. Securepoint Security System Version 2007nx

HINWEISE ZUR ARBEIT IM LABOR

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

Programmierung für Mathematik (HS13)

Anleitung für die Einrichtung weiterer Endgeräte in 4SELLERS SalesControl

desk.modul : WaWi- Export

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

Updatehinweise für die Version forma 5.5.5

Übungen zur Softwaretechnik

How to install freesshd

Christine Hansen, Fabrizio Fresco, Patrick Malcherek

Praktikum Software Engineering

J2EEKurs. Enterprise JavaBeans Einführung. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany, Universität Freiburg, Germany

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)

DB2 Kurzeinführung (Windows)

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Application Frameworks

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

seit Java 1.1 Bestandteil der API: packages java.sql, javax.sql

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Konfiguration des Novell GroupWise Connectors

7. Übung - Datenbanken

Arbeitsgruppe Multimedia DLmeta in echten Anwendungen

Administrator-Anleitung

Themen. Web Service - Clients. Kommunikation zw. Web Services

Arbeiten mit einem lokalen PostgreSQL-Server

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

Streamingserver - Aufzeichnung einer Lehrveranstaltung Ablauf

Step by Step Webserver unter Windows Server von Christian Bartl

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Whitepaper. Produkt: combit Relationship Manager. Einbindung externer FiBu-/Warenwirtschaftsdaten. combit GmbH Untere Laube Konstanz

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

Softwareentwicklung mit Enterprise JAVA Beans

Kurzinformation Zugang zur NOVA für dezentrale Administratoren

Verteidigung gegen SQL Injection Attacks

MySQL 101 Wie man einen MySQL-Server am besten absichert

Ein Ausflug zu ACCESS

Software Engineering Klassendiagramme Assoziationen

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

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Workflow, Business Process Management, 4.Teil

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Transkript:

Universität Karlsruhe (TH) Informationsintegration und Portale Tutorial: Enterprise Java Erik Buchmann buchmann@ira.uka.de IPD, Forschungsbereich Systeme der Informationsverwaltung

Benötigte Software Entity installiertes JDK übersetzen von EJB-Komponenten Datenbankserver mit JDBC-Treiber Backend f. persistente Speicherung von Entity MySQL 5.0.26 mit Connector 5.0.4 Applikationsserver Container für EJB-Komponenten Sun App Server, Bestandteil des Java EE 5 SDK Entwicklungsumgebung Assistenten zum, DD erzeugen etc. Netbeans 5.0 Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 2

Allgemeine Vorgehensweise: Bottum-Up Entity 1. Datenbank anlegen Datenbankschema, Schlüssel, Fremdschlüsselbez. 2. Entity generieren Übername der Attribute aus dem Datenbankschema 3. erzeugen Geschäftsmethoden definieren 4. Applikation schreiben Oberfläche für den Anwender, Logik für Benutzerschnittstelle 5..WAR-Archive erzeugen und auf dem App-Server installieren und registrieren Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 3

Die Beispielanwendung Kunde Produkt suchen Produkt aufwählen Produktkatalog Einkaufsleiter Hersteller anlegen Herstellerdaten bearbeiten << use >> Hersteller aufwählen << use >> Produktdaten bearbeiten Produkt anlegen Hersteller entfernen Produkt entfernen Produktmanager Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 4

Aufsetzen der Datenbank: DB, User buchmann@localhost:~> mysql -uroot -prootpw Entity # Datenbank anlegen CREATE DATABASE EJBTUT; # Nutzer anlegen GRANT ALL PRIVILEGES ON EJBTUT.* TO ejbuser@localhost IDENTIFIED BY 'ejbpw'; # Nutzer aktivieren FLUSH PRIVILEGES; Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 5

Aufsetzen der Datenbank: Schema buchmann@localhost:~> mysql -uejbuser -pejbpw EJBTUT Entity CREATE TABLE MANUFACTURER ( ID INTEGER PRIMARY KEY, NAME VARCHAR(30) NOT NULL, URL VARCHAR(200) NOT NULL ); CREATE TABLE PRODUCT ( ID INTEGER PRIMARY KEY, NAME VARCHAR(30) NOT NULL, DESCRIPTION VARCHAR(200) NOT NULL, PRICE DECIMAL(8,2) NOT NULL, M_ID INTEGER NOT NULL, FOREIGN KEY (M_ID) REFERENCES MANUFACTURER(ID) ); Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 6

Entity JDBC-Treiber in Netbeans registrieren Runtime Databases Drivers: New Driver Databases mysql/jdbc: Connect jdbc:mysql://localhost/ejbtut?user=ejbuser&password=ejbpw Sun App-Server in Netbeans registrieren Runtime Servers: Add Server Neues Projekt anlegen New Project Enterprise Enterprise Application Name: KlickAndBau Projektordner festlegen Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 7

Entity generieren Entity Übername der Attribute aus dem Datenbankschema im ejb-teilprojekt: New CMP Entity from Database JDBC Connection: jdbc:mysql://localhost/ejbtut Package: kub Tables: Add All Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 8

Was wurde generiert? (1) Entity Home-Interface Home ist hier der Container, d.h. der App-Server Interface definiert Methoden zum Verwalten einer Bean allgemeine Methoden zum Anlegen und Zerstören einer Bean werden von EJBLocalHome geerbt Bean-spezifische Methoden zum Suchen anhand von Datenbank-Attributen werden im Interface selbst definiert Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 9

Was wurde generiert? (2) Entity Local/LocalBusiness-Interfaces Zugriff auf die Attribute der Entity getter/setter-methoden für Relation Manufacturer: Integer getid() String getname() void setname(string) String geturl() void seturl(string) Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 10

Was wurde generiert? (3) Entity Die Bean-Klassen selbst implementiert die Methoden des LocalBusiness- Interfaces (wenigstens abstract) enthält eine Methode zum Erzeugen des Objekts sowie weitere Methoden, die zur EJB-Infrastruktur gehören Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 11

Was wurde generiert? (4) Entity -Descriptor (ejb-jar.xml) allgemeine Angaben <description>...<display-name>...<ejb-name>... Persistenz <ejb-ql>select OBJECT(p) FROM Product AS p WHERE... Transaktionen <container-transaction>...</container-transaction> Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 12

erzeugen Entity Abbildung von Geschäftsmethoden auf Geschäftsobjekte (die Entity ) im ejb-teilprojekt: New Bean Name View, Package: kub Typ Stateless, nur Remote Interface Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 13

was wurde erzeugt? Entity Remote-Interface Interface ist noch leer, da noch keine Geschäftsmethoden definiert wurden die Bean selbst ebenfalls noch leerer Methodenrumpf Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 14

Business Logic hinzufügen (1) Entity Rechtsklick in die Klasse ViewBean, Enterprise Resources Call Enterprise Bean Auswahl von ProductEB generiert wurde Methode lookupproductbean() Attribut zur Klasse hinzufügen private kub.productlocalhome prodhome; In die Init-Methode der Bean ejbcreate() den Lookup-Aufruf einbauen prodhome = lookupproductbean(); Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 15

Business Logic hinzufügen (2) Rechtsklick, EJB Methods Add Business Method Entity String showproduct(int id) throws FinderException { kub.productlocal p = prodhome.findbyprimarykey( } new Integer(id)); return " Produkt: " + p.getname() + " Beschreibung: " + p.getdescription() + " Preis: " + p.getprice() + " Hersteller: " + p.getmid().getname(); wir brauchen uns nicht mehr darum zu kümmern, verschachtelte Objekte aufzulösen EJB sucht den Manufacturer aus der Fremdschlüsselbeziehung in der Datenbank für uns! Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 16

hinzufügen (1) Entity in unserem Beispiel: Servlet als Benutzerschnittstelle Lokator zur Kommunikation zwischen Servlet und Bean erzeugen im web-teilprojekt: New Enterprise Service Lokator Name KubLocator, Package kub Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 17

hinzufügen (2) Entity Servlet anlegen erzeugt den HTML-Code, der dem Webbrowser des Nutzers präsentiert wird im web-teilprojekt: New Servlet Name ViewServlet, Package kub generiert wurden leeres Beispiel-Servlet -Deskriptor (web.xml, sun-web.xml) <context-root>, <servlet-name>, <url-pattern> etc. Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 18

Nutzerschnittstelle (1) Entity Lookup-Methode für die Bean einfügen Rechtsklick, Enterprise Resources Call Enterprise Bean: ViewBean auswählen, als Lokator kub.kublocator eintragen Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 19

Nutzerschnittstelle (2) processrequest(): Webformular für Eingabedaten Entity out.println("<form>"); out.println("product number: <input type='text' name='prod_nr' />"); out.println("<input type=submit value=select />"); out.println("</form>"); Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 20

Nutzerschnittstelle (3) Entity processrequest(): Daten bzw. Fehler ausgeben out.println("<h1>servlet ViewServlet at " + request.getcontextpath() + "</h1>"); String nr = request.getparameter("prod_nr"); if (nr!= null &&!(nr.equals(""))) { try { kub.viewremote vsr = lookupviewbean(); out.println("produkt "+nr +" [ " + vsr.showproduct(integer.parseint(nr)) + "]"); } catch (Exception ex) { out.println("error with Id. " + nr + "<p>"); out.println(ex.tostring()); StackTraceElement ste[] = ex.getstacktrace(); out.println("<p>"); for (int i = 0; i<ste.length; i++) out.println(ste[i]+"<br>"); } } Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 21

Entity Projekt kompilieren.war-packages auf den Applikationsserver spielen JDBC-Treiber im App-Server registrieren Verbindung zwischen App-Server und DB herstellen referenzierte Namen dem App-Server bekannt machen ( Descriptor) In Netbeans: Rechtsklick auf Projekt Clean and Build Project Rechtsklick auf Projekt Deploy Project Rechtsklick auf Projekt Run Project Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 22

Wenn alles geklappt hat: Entity Erik Buchmann Mehrschichtenarchitekturen und Komponentenumgebungen 23