Jakarta/Java Enterprise Edition (JEE)
Willemers Informatik-Ecke
Diese Seiten zum Thema Jakarta/Java Enterprise Edition sind auf der Basis beruflicher Erfahrungen, dem entsprechenden Kapitel meines Buchs Java-Alles in einem Band-für Dummies und mehreren Wahlpflichtveranstaltungen an der Hochschule Flensburg entstanden.

Die Jakarta/Java Enterprise Edition JEE wird zur Programmierung unternehmensweiter Software eingesetzt, die sich gegenüber der normalen Java-Entwicklung vor allem darin hervorhebt, dass Sie auf einer Client-Server-Architektur basiert.

Client-Server-Programmierung

Unternehmensweite Software benötigt zentralisierte Datenbestände und zentralisierte Abläufe. Um diese mit den Arbeitsplätzen zu verbinden, benötigt man ein Netzwerk.

Die grundlegendste Art der Netzwerkprogrammierung verwendet die Socketprogrammierung. Auf den Sockets setzt das Protokoll HTTP auf. Dieses Protokoll wird unter Java durch die Klasse HttpURLConnection unterstützt.

Die Programme der JEE-Programmierung verwenden einen Application Server als Laufzeitumgebung, sind also Module eines Servers und nicht die Module einer Standard-Java-Runtime-Environment (JRE).

Installation einer Jakarta/JEE Entwicklungsumgebung

Programmieren lernt man nur durch Programmieren. Für die Entwicklung von JEE-Anwendungen benötigt man einen Application Server und eine Entwicklungsumgebung, die diesen in die Tests einbeziehen kann.

Für die Beispiele wurde die JEE-Version von Eclipse, die Referenzimplementierung Glassfish, die Eclipse-Glassfish-Tools und als Datenbank-Managementsystem PostgreSQL verwendet.

Application-Server

Application Server erfüllen mehrere Ansprüche: Es gibt verschiedene Application Server. Die bekanntesten sind:

Build und Deploy

Nach seiner Entwicklung wird die Anwendung in ein Paket gepackt. Dies kann ein EAR oder WAR sein und wird dann auf den Applikationsserver gestellt. Diesen Vorgang bezeichnet man als Deploy.

Servlets

Mit Servlets können HTTP-Anfragen entgegengenommen und beantwortet werden. Ein Servlet reagiert separat auf GET-, POST und andere HTTP-Aufrufe und kann diese dynamisch beantworten, indem er Text auf dem Antwortkanal ausgibt.

Bei der Verwendung von HTML-Code auf den Ausgabekanal kann so ein Browser als Client eingesetzt werden.

Allerdings kann auch XML oder JSON verwendet werden. Auf diese Weise können beliebige Daten mit einem Client ausgetauscht werden, der XML oder JSON spricht.

Java Server Pages

Bei Java Server Pages (JSP) handelt es sich um HTML-Dateien, in die Java-Code eingebettet wird. Dies erinnert ein wenig an PHP. Der Application Server übersetzt die Java Server Pages in Servlets. Java Server Page-Dateien enden auf .jsp.

Java Server Pages werden vor allem eingesetzt, wenn der Client ein Browser ist. Damit eignet sich JSP besonders für die Erstellung einer interaktiven Benutzerschnittstelle.

Da HTML für die Ausgabe verwendet wird, kann in gewohnter Weise CSS und JavaScript eingesetzt werden.

Java Server Faces

Java Server Faces (JSF) stellen ebenfalls eine View für einen Browser dar. Hier wird der Java-Source nicht in HTML eingebettet. Stattdessen gibt es zu jeder JSF-Seite eine Backing Bean, die den Java-Code zur Verfügung stellt und auf den JSF zugreift.

Das Konzept führt dazu, dass die Backing Bean die Daten liefert, die im Facelet eingegeben und dargestellt wird.

SOAP

Das Protokoll SOAP verknüpft die Möglichkeiten von HTTP und XML zu einer Realisierung eines Remote Procedure Calls. Auf der Basis von XML wird in einer WSDL-Datei die Schnittstelle der entfernten Prozedur definiert, die ihre Parameter als XML-kodierte Daten austauscht.

REST

REST steht für Representational State Transfer. Ein REST-Server stellt eine Ressource zur Verfügung, die durch ihre URI identifiziert wird. Eine solche Ressource wird durch die HTTP-Kommandos GET (lesen), PUT (ändern), POST (hinzufügen), DELETE (löschen) verwaltet. Da lediglich die URI und das Kommando benötigt wird, ist ein Client recht einfach in fast jeder Programmiersprache oder Umgebung zu erzeugen.

JPA - Java Persistence API

Die Java Persistence API (JPA) ermöglicht eine vereinfachte Behandlung der Datenbankzugriffe. Datenbanktabellen werden auf Objekte abgebildet (ORM: Object Relation Modell). Diese Objekte werden durch den Entity Manager der JPA in die Datenbank geschrieben oder daraus gelesen.

JEE-Literatur

Salvanos: Professionell entwickeln mit Java EE 8

Marcus Schießer, Martin Schmollinger: Workshop Java EE 7

Etwas abstrakter: Dirk Weil: Java EE 7: Enterprise-Anwendungsentwicklung leicht gemacht

Das Buch enthält über 100 Seiten über JEE: Arnold Willemer: Java Alles-in-einem-Band für Dummies

heise: Jakarta EE 10: Das erste große Release seit 5 Jahren zielt auf Cloud-Anwendungen