O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Workshop Java EE 7

Book Description

  • Zeitnah zur Version 7, die 2013 herauskommt- Ein durchgehendes Beispiel, mit dem man alle wesentlichen Teile der Java EE praktisch kennen lernt

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Vorwort
    1. Für wen ist das Buch?
    2. Java EE 7
    3. Zusatzinformationen zum Buch
    4. Aufbau des Buches
  5. Inhaltsübersicht
  6. Inhaltsverzeichnis
  7. 1 Ein Einstieg mit Profil
    1. 1.1 Java EE 7 – der Standard für Enterprise Java
      1. 1.1.1 Struktur einer Enterprise-Java-Anwendung
      2. 1.1.2 Die Java Enterprise Edition (Java EE)
      3. 1.1.3 Anatomie einer Java-EE-Anwendung
    2. 1.2 Die Komponentenarchitektur von Java EE 7
      1. 1.2.1 Die Komponenten der Webschicht
        1. JavaServer Pages
        2. JavaServer Faces
      2. 1.2.2 CDI – ein Komponententyp mit viel Potenzial
      3. 1.2.3 Enterprise JavaBeans
      4. 1.2.4 Java Persistence API (JPA)
      5. 1.2.5 Die Java-EE-Profile
      6. 1.2.6 Und ab geht‘s auf den Applikationsserver!
    3. 1.3 Die Zielarchitektur
    4. 1.4 Wie geht es jetzt weiter?
    5. 1.5 Weiterführende Literatur
  8. 2 Aufsetzen der Entwicklungsumgebung
    1. 2.1 Werkzeuge und Server für Java EE
    2. 2.2 Installation der nötigen Softwarepakete
      1. 2.2.1 Installation von Java SE
      2. 2.2.2 Installation von Maven 3
      3. 2.2.3 Installation von JBoss AS 7.1.1
    3. 2.3 Vom Projekt zur ausgeführten Webanwendung
      1. 2.3.1 Anlegen eines leeren Java-EE-6-Webprojektes mit Maven
      2. 2.3.2 Der erste Build und das erste Deployment
      3. 2.3.3 Test des Deployments
    4. 2.4 Eclipse Juno – mehr als ein Texteditor
      1. 2.4.1 Installation von Eclipse
      2. 2.4.2 Eclipse-Plug-in m2e
      3. 2.4.3 Import von Maven-Projekten
      4. 2.4.4 Das Deployment
    5. 2.5 Weitere Werkzeuge des Workshops
    6. 2.6 Weiterführende Literatur
  9. 3 Fachlichkeit der Beispielanwendungen »My-Aktion« und »My-Aktion-Monitor«
    1. 3.1 Einleitung
    2. 3.2 Übersicht der Anwendungsfälle
    3. 3.3 Fachklassen
    4. 3.4 Anwendungsfälle
      1. 3.4.1 Anmeldung notwendig
      2. 3.4.2 Aktionen anzeigen und bearbeiten
      3. 3.4.3 Spendenformular bearbeiten
      4. 3.4.4 Spendenliste anzeigen
      5. 3.4.5 Aktion bearbeiten
      6. 3.4.6 Aktion löschen
      7. 3.4.7 Neue Aktion anlegen
      8. 3.4.8 Aktionsdaten editieren
      9. 3.4.9 Geld spenden
      10. 3.4.10 Reduzierte Spendenliste anzeigen
    5. 3.5 Weiterführende Literatur
  10. 4 Iteration Nr. 1 – JavaServer Faces
    1. 4.1 Einleitung
    2. 4.2 Fachklassen als JavaBeans
      1. 4.2.1 Konto
      2. 4.2.2 Spende
      3. 4.2.3 Aktion
    3. 4.3 Das Vorlagensystem
      1. 4.3.1 Templating mit Facelets
      2. 4.3.2 Ein Template für My-Aktion
        1. XHTML-Template
        2. Cascading Style Sheet (CSS)
        3. Das Template im Einsatz
    4. 4.4 Der Anwendungsfall »Aktionen anzeigen und bearbeiten«
      1. 4.4.1 Die Backing Beans
        1. Die @Named-Annotation
        2. Der Sichtbarkeitsbereich @SessionScoped
        3. Die Klasse AktionListController
        4. Die Klasse AktionListProducer
      2. 4.4.2 JSF-Technologien für den ersten Anwendungsfall
        1. Expression Language
        2. UI-Komponenten
        3. Formular-Komponente
        4. Links- und Schaltflächen-Komponente
        5. Ausgabetext-Komponente
        6. Komponente zur Formatierung von Zahlen
        7. Datentabellen-Komponente
      3. 4.4.3 Unsere erste View!
      4. 4.4.4 Der Start – ein erster Meilenstein
        1. Ein bequemer Einstieg in My-Aktion
    5. 4.5 Weitere JSF- und Java-EE-Technologien
      1. 4.5.1 @Inject-Annotation
      2. 4.5.2 Texteingabe mit Validierung, Konvertierung und Fehlermeldungen
        1. Validierung
        2. Konverter
        3. Fehlermeldungen
      3. 4.5.3 Das Rasterlayout von UI-Komponenten
      4. 4.5.4 Auswahlkomponenten
        1. Die Combo-Box (h:selectOneMenu)
        2. Die Checkbox (h:selectBooleanCheckbox)
      5. 4.5.5 Die GET-Parameterverarbeitung in einer View
      6. 4.5.6 Ajax – etwas mehr Dynamik gefällig?
    6. 4.6 Die Implementierung der restlichen Anwendungsfälle
      1. 4.6.1 Aktion bearbeiten und Aktion neu anlegen
        1. Die Klasse AktionEditController
        2. Das Facelet aktionEdit.xhtml
        3. Die bestehenden Facelets und Klassen anpassen
      2. 4.6.2 Spendenliste anzeigen
        1. Die Controller-Klasse SpendenListController
        2. Das Facelet spendeList.xhtml
        3. Die vorhandenen Klassen anpassen
      3. 4.6.3 Spendenformular bearbeiten
        1. Die Klasse SpendeFormEditController
        2. Das Facelet spendeFormEdit.xhtml
        3. Die vorhandenen Klassen anpassen
        4. Generierung der Formular-URL
      4. 4.6.4 Geld spenden
        1. Die Controller-Klasse GeldSpendenController
        2. Das Facelet geldSpenden.xhtml
    7. 4.7 Neue Funktionalitäten in Java EE 7
      1. 4.7.1 Faces Flows
      2. 4.7.2 Resource Library Contracts
      3. 4.7.3 Stateless Views
      4. 4.7.4 HTML5 Friendly Markup
      5. 4.7.5 JSF 2.2 mit JBoss AS 7.1.1
    8. 4.8 Exkurs: PrimeFaces
      1. 4.8.1 Installation über Maven
      2. 4.8.2 Neue Farbauswahl für die Bearbeitung des Spendenformulars
        1. Die neuen Tags für die Farbauswahl
        2. Die neue Implementierung der Farbauswahl mit PrimeFaces
      3. 4.8.3 Tabs für das Anlegen und Editieren von Aktionsdaten
        1. Die neuen Tags für Tabs (Karteikarten)
        2. Die neue Darstellung der Aktionsdaten mit PrimeFaces
      4. 4.8.4 Der Bestätigungsdialog für den Anwendungsfall »Aktion löschen«
        1. Die neuen Tags für den Bestätigungsdialog
        2. Die Implementierung des Bestätigungsdialogs mit PrimeFaces
    9. 4.9 Aufgaben
      1. 4.9.1 Verwendung von PrimeFaces-Komponenten für alle Views
      2. 4.9.2 Auslagerung der Eigenschaften des Spendenformulars
        1. Auslagerung der Eigenschaften in eine Klasse
      3. 4.9.3 Einführung weiterer Formulareigenschaften
    10. 4.10 Weiterführende Literatur
  11. 5 Iteration Nr. 2 – CDI
    1. 5.1 Warum CDI?
    2. 5.2 Der Laufzeit-Container
      1. 5.2.1 Der Sichtbarkeitsbereich (Scope) einer Bean
        1. 5.2.1.1 RequestScope
        2. 5.2.1.2 SessionScope
        3. 5.2.1.3 DependentScope
        4. 5.2.1.4 Setzen der Scopes für unsere Anwendung
      2. 5.2.2 Beans referenzieren über Dependency Injection
      3. 5.2.3 Der Lebenszyklus
        1. 5.2.3.1 Lebenszyklusmethode PostConstruct
        2. 5.2.3.2 Lebenszyklusmethode PreDestroy
      4. 5.2.4 Beliebige Klassen als Beans mit Producer-Methoden
    3. 5.3 Anwendungsweite Nachrichten
      1. 5.3.1 Events senden und empfangen
      2. 5.3.2 Nachrichten gleichen Typs mit Qualifiern unterscheiden
    4. 5.4 Services
      1. 5.4.1 Die Mock-Methode in eine Serviceklasse auslagern
      2. 5.4.2 Die verwendete Serviceimplementierung mit Qualifiern auswählen
    5. 5.5 Tests
      1. 5.5.1 Testframework Arquillian konfigurieren
      2. 5.5.2 Den Anwendungsfall »Neue Aktion anlegen« testen
    6. 5.6 Was noch nicht behandelt wurde
      1. 5.6.1 ApplicationScope und ConversationScope
      2. 5.6.2 Der ViewScope
      3. 5.6.3 Der FlowScope
      4. 5.6.4 Interzeptoren und Dekoratoren
      5. 5.6.5 Stereotypes
      6. 5.6.6 Der BeanManager
      7. 5.6.7 Erweiterungen
    7. 5.7 Aufgaben
      1. 5.7.1 Fachliches und technisches Log unterscheiden
      2. 5.7.2 Nachricht zur Aktualisierung einer Aktion hinzufügen
    8. 5.8 Weiterführende Literatur
  12. 6 Iteration Nr. 3 – Java Persistence API
    1. 6.1 Einleitung
    2. 6.2 Entitäten annotieren
      1. 6.2.1 Als Entität markieren und Primärschlüssel festlegen
      2. 6.2.2 Relationen der Entitäten festlegen
      3. 6.2.3 Abhängige Entitäten einbinden
    3. 6.3 Services um Datenzugriffe erweitern
      1. 6.3.1 EntityManager einbinden
      2. 6.3.2 Datenbankabfragen hinzufügen
      3. 6.3.3 CRUD-Operationen ausführen
      4. 6.3.4 AktionListProducer um Servicedelegation erweitern
    4. 6.4 Daten transaktional speichern
      1. 6.4.1 Datenquelle konfigurieren
      2. 6.4.2 Services um Transaktionen erweitern
    5. 6.5 Spenden persistieren und anzeigen
      1. 6.5.1 Service zur Bearbeitung von Spenden erstellen
      2. 6.5.2 Anwendungsfall Geld spenden finalisieren
      3. 6.5.3 Den bisher gespendeten Betrag berechnen
      4. 6.5.4 Spenden in der Spendenliste anzeigen
      5. 6.5.5 Testfälle erstellen
        1. »Testdaten für Aktionen und Spenden bereitstellen«
        2. »Bisher gespendete Beträge testen«
        3. »Hinzufügen einer Spende testen«
    6. 6.6 Eingaben über Bean Validation überprüfen
      1. 6.6.1 Entitäten mit Bedingungen annotieren
      2. 6.6.2 Validatoren aus Views entfernen
      3. 6.6.3 Zugeordnete Spenden beim Löschen einer Aktion automatisch entfernen
    7. 6.7 Was noch nicht behandelt wurde
      1. 6.7.1 CriteriaQuery als Alternative zur NamedQuery
      2. 6.7.2 LazyInitialisationException über FetchType vermeiden
      3. 6.7.3 Object Locking
        1. 6.7.3.1 Optimistische Sperre
        2. 6.7.3.2 Pessimistischen Sperre
      4. 6.7.4 Lebenszyklusmethoden bei Zustandsänderungen
    8. 6.8 Neue Funktionalitäten in Java EE 7
      1. 6.8.1 Bean Validation auf Methodenebene
      2. 6.8.2 Erweiterte CDI-Unterstützung
      3. 6.8.3 Aufruf gespeicherter Prozeduren und Funktionen
      4. 6.8.4 Schreibende Massenoperationen mit der Criteria API
    9. 6.9 Zusammenfassung
    10. 6.10 Aufgaben
      1. 6.10.1 JPQL-Abfragen mit Criteria API ersetzen
      2. 6.10.2 Testfall für das Hinzufügen einer Aktion erweitern
      3. 6.10.3 Zeitstempel der Aktualisierung hinzufügen
      4. 6.10.4 Minimalen Spendenbetrag der Aktion überprüfen
      5. 6.10.5 Organisator über Spendenziel informieren
    11. 6.11 Weiterführende Literatur
  13. 7 Iteration Nr. 4 – Enterprise JavaBeans
    1. 7.1 Einleitung
    2. 7.2 Sicherheit
      1. 7.2.1 Organisatoren speichern
      2. 7.2.2 Security-Domain im JBoss anlegen
      3. 7.2.3 Benutzeroberfläche absichern
      4. 7.2.4 Eigene Aktionen für jeden Organisator
      5. 7.2.5 Services über Annotationen absichern
      6. 7.2.6 Mehr Sicherheit durch SSL
      7. 7.2.7 Eigenen Anmeldebildschirm festlegen
    3. 7.3 Transaktionssteuerung
      1. 7.3.1 Transaktionssteuerung durch den Container
        1. Unterschiedliche Transaktionsstrategien einsetzen
      2. 7.3.2 Transaktionssteuerung über die Bean
      3. 7.3.3 Transaktionssteuerung über Interzeptoren
    4. 7.4 Zeitgesteuerte Abläufe realisieren
      1. 7.4.1 Spenden überweisen
      2. 7.4.2 Hintergrundjob zeitlich gesteuert aufrufen
    5. 7.5 Vergleich EJBs und CDI
      1. 7.5.1 Unterschiedlicher Lebenszyklus
      2. 7.5.2 Vorteile der jeweiligen Technologie
        1. Vorteile von EJBs:
        2. Vorteile von CDI-Beans:
    6. 7.6 Was nicht behandelt wurde
      1. 7.6.1 Stateful Session Beans
      2. 7.6.2 Entfernter Methodenaufruf
      3. 7.6.3 Asynchroner Methodenaufruf
      4. 7.6.4 Message-Driven Beans
      5. 7.6.5 Entity Beans
    7. 7.7 Aufgaben
      1. 7.7.1 Registrierungsformular für Organisatoren erstellen
      2. 7.7.2 Services auf CDI umstellen
      3. 7.7.3 Ausführungszeit einer Methode messen
    8. 7.8 Weiterführende Literatur
  14. 8 Iteration Nr. 5 – Kommunikation und HTML5
    1. 8.1 Einleitung
    2. 8.2 Neue Technologien
      1. 8.2.1 Webservices
        1. SOAP-Webservices
        2. RESTful Webservices
      2. 8.2.2 WebSockets
    3. 8.3 Kommunikationsarchitektur
    4. 8.4 REST-Webservice-Schnittstelle für My-Aktion
      1. Konfiguration der Webanwendung
      2. Test der REST-Webservices
      3. 8.4.1 REST-Webservice für das Management von Aktionen
        1. 8.4.1.1 Liste aller Aktionen eines Organisators abfragen
        2. Test des Ressourcenzugriffs
        3. 8.4.1.2 Aktion löschen
        4. Test des Ressourcenzugriffs
        5. 8.4.1.3 Neue Aktion hinzufügen
        6. Test des Ressourcenzugriffs
        7. 8.4.1.4 Aktion aktualisieren
        8. Test des Ressourcenzugriffs
      4. 8.4.2 REST-Webservice zur Abfrage und Ausführung von Spenden
        1. 8.4.2.1 Spendenliste einer Aktion abfragen
        2. Test des Ressourcenzugriffs
        3. 8.4.2.2 Geld spenden
        4. Test des Ressourcenzugriffs
        5. XML statt JSON
        6. Reduzierte Spendenliste ohne Authentifizierung
    5. 8.5 Die Webapplikation My-Aktion-Monitor
      1. 8.5.1 Anwendungsserver Glassfish installieren
        1. Quickstart mit Glassfish
        2. Ein Webprojekt für den Glassfish
        3. Autodeployment konfigurieren
        4. Aktualisierung der Java-EE-7-API
        5. Spezielle Glassfish-Konfiguration für WebSockets
        6. Glassfish-Keystore für Zugriff auf SSL-Port von JBoss vorbereiten
      2. 8.5.2 Bestandteile der Anwendung My-Aktion-Monitor
        1. 8.5.2.1 Spendenliste einer Aktion anzeigen
        2. Das clientseitige WebSocket implementieren
        3. Das serverseitige WebSocket implementieren
        4. Spendenliste mittels REST-Service ermitteln
        5. JSON-Repräsentation in Java-Objekt umwandeln
        6. Verifizierung des Rechnernamens deaktivieren
        7. REST-Client in MonitorWebSocket einbinden
        8. 8.5.2.2 SOAP-Webservice für My-Aktion-Monitor erstellen
        9. 8.5.2.3 SOAP-Webservice testen
        10. 8.5.2.4 Spendenliste über SOAP aktualisieren
    6. 8.6 Nicht behandelt
      1. 8.6.1 JMS
      2. 8.6.2 Java Mail
      3. 8.6.3 Nebenläufigkeit
      4. 8.6.4 JMX
    7. 8.7 Aufgaben
      1. 8.7.1 Erweiterung der REST-Services um XML
      2. 8.7.2 Eigenen REST-Client erstellen
    8. 8.8 Weiterführende Literatur
  15. 9 Java EE 7 und die Cloud
    1. 9.1 Einleitung
    2. 9.2 Was ist eine Cloud?
      1. 9.2.1 Standardisierungsbedarf für Java-EE-Cloud-Szenarien
    3. 9.3 My-Aktion in OpenShift installieren
      1. 9.3.1 Zugang für OpenShift anlegen
      2. 9.3.2 Notwendige Werkzeuge installieren
        1. Ruby installieren
        2. Git installieren
        3. OpenShift-Werkzeuge installieren
        4. OpenShift-Werkzeuge konfigurieren
      3. 9.3.3 Neue Anwendung in OpenShift anlegen
      4. 9.3.4 My-Aktion in OpenShift deployen
      5. 9.3.5 Anpassungen für OpenShift vornehmen
        1. URL der Datenquelle anpassen
        2. Datenbank mit Werten füllen
        3. Security-Domain hinzufügen
        4. Standardisierter SSL-Redirect ausschalten
        5. Land auf Deutschland und Sprache auf Deutsch stellen
    4. 9.4 Weiterführende Literatur
  16. A Anhang
    1. A.1 Vom Servlet zu JSF mit CDI und EJB
      1. A.1.1 Ein paar Hinweise vorweg
      2. A.1.2 Java Servlets
      3. A.1.3 JavaServer Pages und JavaBeans
      4. A.1.4 JavaServer Faces und JSF Managed Beans
      5. A.1.5 JavaServer Faces und CDI
      6. A.1.6 JSF, CDI und Enterprise JavaBeans
    2. A.2 JSF 2.2 für JBoss AS 7.1.1
      1. A.2.1 Installation und Konfiguration der JSF-Implementierung
      2. A.2.2 Installation und Konfiguration der JSF-API
    3. A.3 My-Aktion und My-Aktion-Monitor auf GitHub
      1. A.3.1 Git installieren
      2. A.3.2 Git-Repository des Workshops verwenden
      3. A.3.3 Literatur zu Git
  17. Index
  18. Fußnoten
    1. 2 Aufsetzen der Entwicklungsumgebung
    2. 3 Fachlichkeit der Beispielanwendungen »My-Aktion« und »My-Aktion-Monitor«
    3. 5 Iteration Nr. 2 – CDI
    4. 6 Iteration Nr. 3 – Java Persistence API
    5. 7 Iteration Nr. 4 – Enterprise JavaBeans
    6. 8 Iteration Nr. 5 – Kommunikation und HTML5
    7. 9 Java EE 7 und die Cloud