Sie sind hier
E-Book

Enterprise JavaBeans 3.1

Das EJB-Praxisbuch für Ein- und Umsteiger

AutorJan Leßner, Werner Eberling
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2011
Seitenanzahl386 Seiten
ISBN9783446426573
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis31,99 EUR

EJB 3.1 LEICHT GEMACHT

- Aktuelle und praxisorientierte Einführung in EJB 3.1
- Lernen durch Selbermachen: Die einzelnen Teilaspekte von EJB 3 werden an einer Vielzahl praktischer Beispiele dargestellt.
- Neu in der 2.A.: Kochbuchteil mit Rezepten für häufig wiederkehrende Fragestellungen
- Im Internet: Quellcode der Beispiele aus dem Buch

Wenn Sie sich nicht durch die mehrere Hundert Seiten starke Spezifikation von Enterprise JavaBeans kämpfen und mühsam selbst herausfinden wollen, was nun genau wie in Projekten wirklich funktioniert, dann sind Sie hier genau richtig. Werner Eberling und Jan Leßner stellen in diesem Buch die Standards EJB 3.1 und JPA 2.0 anschaulich vor und reichern diese mit ihrer Praxiserfahrung aus vielen Projekten an.
Ein- und Umsteiger in EJB 3.1 erhalten hier eine kompakte Darstellung der grundlegenden Aspekte von komponentenbasierten Mehrschichtsystemen und der Rolle, die EJBs JPA-Entitäten darin spielen. Alle Aspekte beider Technologien werden anhand zahlreicher Beispiele und einer durchgehenden Applikation detailliert dargestellt und durch wertvolle Praxistipps ergänzt.
Im neuen Kochbuchteil finden Sie Lösungen für häufig wiederkehrende Fragestellungen rund um EJBs und Enterprise-Applikationen, die Ihnen unmittelbar bei der Lösung Ihrer Aufgaben im Projekt helfen.

Aus dem Inhalt: Technische Grundlagen, Erste Schritte, Session Beans, Entities, Message-Driven Beans, EJB-Konfiguration, Transaktionen, Sicherheit, Noch mehr EJBs, Blick über den Tellerrand: Testen, Entwurfsmuster, Migration zu EJB3, Beispielanwendung: EinStein würfelt nicht, Kochrezepte

Systemvoraussetzungen für eBook-inside: Internet-Verbindung und eBookreader Adobe Digital Editions

Kaufen Sie hier:

Horizontale Tabs

Leseprobe
"10 Blick über den Tellerrand (S. 287-288)

10.1 Testen von EJBs


Ein Aspekt, der beim Einsatz einer Technologie wie EJB nicht außen vor bleiben darf, ist die Frage nach der Testbarkeit. Neben der Zeit, die für die Erstellung von neuem Code aufgewendet wird, muss auch die Zeit, die für die testweise Ausführung benötigt wird, ins Kalkül einbezogen werden, will man die Effizienz einer Technologie bewerten. Denn was hilft das einfachste Programmiermodell, wenn die eingesparte Zeit wegen zu komplizierter Testbedingungen wieder verloren geht. Vor diesem Hintergrund war ein Ziel, das sich das EJB-Spezifikationsteam mit dem neuen Standard auf die Fahnen geschrieben hat, das Thema Testbarkeit. Mit den bisherigen Standards war eine testgetriebene Entwicklung nur sehr schwer möglich.

Aufgrund zeitraubender Build/Deploy-Zyklen gestaltete sich das Testen von EJBs innerhalb eines Application-Servers ausgesprochen mühsam. Außerhalb des Servers war es meist nur sehr eingeschränkt möglich, da die Beans eine Menge an programmatisch angesprochenen Serverdiensten benötigten – allen voran den Namensdienst. Welche Möglichkeiten EJB3 im Hinblick auf das Thema Testen zu bieten hat, was dabei dem Entwickler eine Hilfestellung bietet und was noch an Stolpersteinen im Weg liegt, soll nun betrachtet werden.

10.1.1 Warum Testen?

Die bereits angesprochene schwere Testbarkeit von EJBs nach altem Standard hat dazu geführt, dass dieses wichtige Thema im Bereich der Entwicklung von EJB-basierten Systemen in der Vergangenheit oft sehr stiefmütterlich behandelt wurde. Der damit verbundene Aufwand war den Projektverantwortlichen häufig ein Dorn im Auge, und Aussagen wie „Wir haben keine Zeit zum Testen“ oder „Während wir testen, können wir keine neuen Features implementieren“ waren leider an der Tagesordnung.

Nun sind aber Entwickler auch Menschen, denen bekanntlich Fehler unterlaufen. Das ist so weit kein Problem, solange man sich dieser Tatsache bewusst ist und versucht, diese Fehler zu entdecken und zu beseitigen, falls sie sich eingeschlichen haben. Hierbei gilt: Je früher ein Fehler entdeckt wird, umso leichter ist er meist zu beseitigen, wobei sich seine negativen Auswirkungen minimieren. Aus diesem Grund sollte der Test einer Software so früh wie möglich einsetzen.

Die Integration der einzelnen Teile einer Anwendung oder gar deren Abnahme sind als Zeitpunkte deutlich zu spät. Natürlich müssen auch hier Tests stattfinden. Während der Integration wird das Zusammenspiel der einzelnen Teile geprüft (im so genannten Integrationstest), und während der Abnahme muss natürlich das fachlich korrekte Verhalten der Anwendung nachgewiesen werden (über so genannte fachliche Abnahmetests).

Das Testen sollten aber schon viel früher, bereits bei der Entwicklung der einzelnen Bestandteile (englisch: Units), einsetzen. Die hierfür zuständige Variante von Tests wird als Unit-Test bezeichnet. Unit-Tests sind automatisierte Tests, die in Form von Testklassen neben den eigentlichen Anwendungsklassen bereitgestellt werden. Hierbei wird oft eine 1:1-Beziehung zwischen Anwendungsklasse und Testklasse empfohlen, d.h. eine Testklasse ist für eine Anwendungsklasse zuständig."
Blick ins Buch
Inhaltsverzeichnis
Inhalt8
Einführung14
Bevor es losgeht14
Zielgruppe und Leseregeln15
Application-Server, Tools und Codebeispiele16
Formatierungen und Sprachgebrauch17
Danksagung18
Feedback18
1 Technische Grundlagen undhistorische Entwicklungen20
1.1 Client-Server-Systeme20
1.2 Die 3-Schichten-Architektur23
1.3 Ein bisschen Komponenten-Theorie26
1.4 EJBs und die Java Enterprise Edition29
1.5 Handwerkszeug aus der Java Standard Edition 531
1.5.1 Annotationen31
1.5.2 Generics32
1.5.3 Autoboxing33
2 Erste Schritte34
2.1 Die Neuheiten kurz gefasst34
2.2 Hello World37
2.2.1 Installation der JEE-Plattform37
2.2.2 Implementierung einer EJB38
2.2.3 Installation der EJB (Deployment)39
2.2.4 Implementierung des Clients41
2.2.5 Aufräumen44
2.3 Spielregeln45
2.3.1 Rollen45
2.3.2 Einschränkungen im Programmiermodell46
2.4 Wie es weitergeht49
3 SessionBeans50
3.1 Einführung50
3.2 Stateless SessionBeans52
3.2.1 Bestandteile einer Stateless SessionBean54
3.2.2 Implementierung im Detail57
3.2.3 Lokaler Zugriff auf Stateless SessionBeans63
3.2.4 Stateless SessionBeans als Webservice-Endpunkt67
3.2.5 Asynchrone Bean-Methoden71
3.2.6 Neue Beans und alte Clients – EJB2-Sicht auf EJB3-SessionBeans73
3.3 Stateful SessionBeans74
3.3.1 Bestandteile einer Stateful SessionBean76
3.3.2 Lifecycle und Event-Callback-Methoden78
3.3.3 Abschließende Bemerkungen82
3.4 Singleton SessionBeans82
3.4.1 Bestandteile einer Singleton SessionBean83
3.4.2 Steuerung des parallelen Zugriffs85
3.5 Paralleler Zugriff auf SessionBeans89
3.6 Session-Context90
3.7 Exceptions92
3.7.1 Applikations- und System-Exception92
3.8 Alternative zur Annotation: Der XML-Deskriptor94
4 Entities98
4.1 Das Problem mit der Persistenz98
4.2 Einige Grundlagen100
4.2.1 Die Data-Source100
4.2.2 Die wichtigsten Begriffe vorweg102
4.3 Eine erste Datenbankanwendung107
4.3.1 Der Lebenszyklus von Entities111
4.3.2 Grundfunktionen des Entity-Managers115
4.4 O/R-Mapping117
4.4.1 Abbildung von Klassen auf Tabellen117
4.4.2 Abbildung von Attributen auf Spalten121
4.4.3 Abbildung von Vererbungen136
4.4.4 Steuerung des Persistence-Providers144
4.5 Beziehungen147
4.5.1 Bi- und unidirektionale Beziehungen verstehen147
4.5.2 Beziehungstypen149
4.5.3 1:1-Beziehungen150
4.5.4 1:N-Beziehungen154
4.5.5 N:1-Beziehungen160
4.5.6 N:M-Beziehungen162
4.5.7 Noch mehr Beziehungen165
4.6 Validierung168
4.6.1 Validierte Entities in 5 Minuten168
4.6.2 Bean Validation und die persistence.xml169
4.6.3 APIs verheiraten171
4.7 Abfragen172
4.7.1 JPA-Schnittstellen für Abfragen175
4.7.2 Alles Wesentliche auf einen Blick176
4.7.3 GROUP-BY und HAVING183
4.7.4 SELECT184
4.7.5 ORDER-BY185
4.7.6 Unterabfragen185
4.7.7 Massenlöschungen und -aktualisierungen186
4.7.8 SQL-Abfragen187
4.7.9 Benannte Abfragen189
4.7.10 Einfach typisierte Abfragen190
4.8 Das Criteria-API190
4.8.1 Das Metamodell192
4.9 Noch mehr Entities196
4.10 Entities im Rückblick198
5 Message-Driven Beans200
5.1 Einführung200
5.2 Nachrichtenbasierte Systeme mit JMS201
5.2.1 Der Nachrichtenserver als Kommunikationsbus202
5.2.2 Einer sendet, einer empfängt – das Punkt-zu-Punkt-Modell202
5.2.3 Einer sendet, viele hören zu – das Publish-Subscribe-Modell207
5.3 Bestandteile einer Message-Driven Bean209
5.3.1 Lebenszyklus einer Message-Driven Bean209
5.3.2 Bestandteile einer Message-Driven Bean210
5.4 Alternative zur Annotation: Der XML-Deskriptor213
5.5 Abschließende Bemerkungen214
6 EJB-Konfiguration216
6.1 Einführung216
6.2 Der lokale JNDI-Kontext216
6.2.1 Dependency-Lookup218
6.2.2 Dependency Injection218
6.3 EJB-Referenzen219
6.4 Konfigurations-Parameter223
6.5 Ressourcen-Manager-Fabriken224
6.6 Nachrichtenziele227
6.7 Noch mehr referenzierte Objekte229
6.8 Abschließende Bemerkungen zum Deployment-Deskriptor230
7 Transaktionen234
7.1 Systemkonsistenz in Komponentenarchitekturen234
7.1.1 Ressourcen236
7.2 Container-verwaltete Transaktionen239
7.2.1 Zurückrollen von CMTs240
7.2.2 Deklaration von CMTs243
7.2.3 CMTs in Message-Driven Beans247
7.2.4 Situationen mit unspezifiziertem Transaktionskontext247
7.3 Bean-verwaltete Transaktionen248
7.4 Transaktionale Ressourcen251
7.4.1 Persistenzkontexte251
7.4.2 Data-Sources251
7.4.3 JMS-Verbindungen253
7.4.4 Stateful SessionBeans und SessionSynchronization254
7.5 Client-verwaltete Transaktionen257
8 Sicherheit260
8.1 Einführung260
8.2 Wer klopft denn da? – Die Authentifizierung260
8.2.1 Erste Schritte260
8.2.2 Der Caller-Principal262
8.2.3 Principal Delegation262
8.2.4 Technische Details der Authentifizierung des Clients263
8.2.5 Serverseitige Authentifizierung269
8.3 Rollenbasierte Autorisierung273
8.3.1 Deklaratives Sicherheitsmanagement274
8.3.2 Programmatisches Sicherheitsmanagement276
8.3.3 Abbildung der logischen Rollen277
8.3.4 Grenzen des rollenbasierten Ansatzes278
8.4 Datenverschlüsselung und Integrität278
9 Noch mehr EJBs282
9.1 Timed Objects282
9.2 Einfache Aspektorientierung mit EJB3287
9.2.1 Interceptor-Methoden288
9.2.2 Interceptor-Klassen291
9.2.3 Interceptoren für Timer-Methoden295
9.2.4 Aspekte über XML-Deskriptoren295
9.3 Ein alternativer Weg zur Remote-Referenz: Der Handle297
9.4 EJBs ohne Application-Server betreiben298
10 Blick über den Tellerrand300
10.1 Testen von EJBs300
10.1.1 Warum Testen?300
10.1.2 Unit-Tests mit Entities und Dependency-Injection302
10.1.3 EJB lite als Test-Umgebung303
10.1.4 Weitere Test-Alternativen304
10.2 Wichtige EJB-Entwurfmuster305
10.2.1 Evtl. bekannte Muster sind weiter gültig305
10.2.2 Neue Muster mit EJB 3.0308
10.2.3 Was es nicht mehr gibt309
10.3 Migration auf EJB3310
10.3.1 Drei (und eine) Migrations-Strategien311
10.3.2 Migrieren, aber wie?313
11 EinStein würfelt nicht318
11.1 Zum Spiel318
11.2 Funktionsweise der Spielplattform320
11.3 Technisches Modell321
11.3.1 Versuchungen321
11.3.2 Design-Entscheidungen322
11.3.3 Das Komponentenmodell324
11.3.4 Das Entitätenmodell325
11.3.5 Die Package-Struktur326
11.4 Hingucker327
11.5 Erweiterungsmöglichkeiten330
11.6 Einige Anmerkungen zum Schluss331
12 Kochrezepte334
12.1 Ein einfacher lokaler Read-Only-Cache335
12.2 Getaktete Datenquelle336
12.3 Vereinfachtes EJB Deployment338
12.4 EJB und JSF339
12.4.1 ManagedBeans als EJB-Client339
12.4.2 SessionBeans als ManagedBeans340
12.5 Fehler aus Webservices melden342
12.6 Stateless SessionBean als RESTful Webservice344
12.7 Dateiexport346
12.8 Eine Basis-Entität349
12.9 Suchfunktion352
12.10 Bitte umblättern356
12.10.1 Variante 1 – Alles dem Client überlassen356
12.10.2 Variante 2 – Verwaltung im Application-Server356
12.10.3 Variante 3 – Verwaltung in der Datenbank358
12.10.4 Noch eine Variante aus dem Internet360
12.11 Lokale Tests mit OpenEJB361
12.11.1 SessionBeans testen361
12.11.2 JPA-Tests362
Literatur366
Register368

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

AUTOCAD Magazin

AUTOCAD Magazin

Die herstellerunabhängige Fachzeitschrift wendet sich an alle Anwender und Entscheider, die mit Softwarelösungen von Autodesk arbeiten. Das Magazin gibt praktische ...

Card Forum International

Card Forum International

Card Forum International, Magazine for Card Technologies and Applications, is a leading source for information in the field of card-based payment systems, related technologies, and required reading ...

caritas

caritas

mitteilungen für die Erzdiözese FreiburgUm Kindern aus armen Familien gute Perspektiven für eine eigenständige Lebensführung zu ermöglichen, muss die Kinderarmut in Deutschland nachhaltig ...

DGIP-intern

DGIP-intern

Mitteilungen der Deutschen Gesellschaft für Individualpsychologie e.V. (DGIP) für ihre Mitglieder Die Mitglieder der DGIP erhalten viermal jährlich das Mitteilungsblatt „DGIP-intern“ ...