Kapitel 3. Entwicklung von Anwendungen, die die JBoss EAP verwenden
3.1. Überblick Link kopierenLink in die Zwischenablage kopiert!
Dieses Handbuch gibt Ihnen Information zum Einstieg in die Anwendungsentwicklung mithilfe des Red Hat JBoss Developer Studio und JBoss EAP 7 Quickstart-Beispielen.
Das Red Hat JBoss Developer Studio ist eine auf Eclipse basierende, integrierte Entwicklungsumgebung (Integrated Development Environment, IDE), die Plugins der JBoss Anwendungsentwicklung integriert. Das JBoss Developer Studio kann Ihnen bei der Entwicklung Ihrer Anwendung durch die Verfügbarkeit von JBoss-spezifischen Assistenten und durch die Fähigkeit, Anwendungen auf JBoss Servern bereitzustellen, helfen. Viele Quickstart-Codebeispiele werden mit der JBoss EAP 7 bereitgestellt um den Benutzern den Einstieg beim Schreiben von Anwendungen mittels verschiedener Java EE 7 Technologien zu erleichtern.
3.2. Einrichten der Entwicklungsumgebung Link kopierenLink in die Zwischenablage kopiert!
Es wird empfohlen, JBoss Developer Studio 11.0 oder höher für JBoss EAP 7.1 zu verwenden.
Laden Sie JBoss Developer Studio herunter und installieren sie es.
Anweisungen finden Sie unter Installation des JBoss Developer Studio Stand-Alone über den Installer im JBoss Developer Studio Installationshandbuch.
Richten Sie den JBoss EAP-Server in JBoss Developer Studio ein.
Anweisungen finden Sie unter Verwendung der Runtime Detection zur Einrichtung von JBoss EAP über die IDE im Leitfaden Erste Schritte mit JBoss Developer Studio Tools guide.
3.3. Verwendung von Quickstart-Beispielen Link kopierenLink in die Zwischenablage kopiert!
Die Quickstart-Beispiele für JBoss EAP sind Maven-Projekte.
3.3.1. Über Maven Link kopierenLink in die Zwischenablage kopiert!
Apache Maven ist ein verteiltes Build-Automatisierungstool, das bei der Entwicklung von Java-Anwendungen für Erstellung, Verwaltung und Build von Software-Projekten verwendet wird. Maven verwendet Standard-Konfigurationsdateien namens Project Object Model (POM), die den Build-Prozess definieren und verwalten. POMs beschreiben die Modul- und Komponenten-Abhängigkeiten, die Build-Reihenfolge und die Ziele für resultierendes Projekt-Packaging und Ausgabe unter Verwendung einer XML-Datei. Dies stellt den korrekten und einheitlichen Build des Projekts sicher.
Maven erreicht dies unter Verwendung eines Repositorys. Ein Maven Repository speichert Java-Bibliotheken, Plugins und andere Build-Artefakte. Das standardmäßige öffentliche Repository ist das Maven 2 Central Repository, aber Repositorys können innerhalb eines Unternehmens privat und intern sein, mit dem Ziel gemeinsame Artefakte unter den Entwicklungsteams zu teilen. Repositorys sind auch von Drittanbietern erhältlich. Weitere Informationen finden Sie im Apache Maven Projekt und im Handbuch Einführung in Repositorys.
Die JBoss EAP beinhaltet ein Maven-Repository, das viele Anforderungen enthält, die Java EE Entwickler in der Regel für den Build von Anwendungen auf der JBoss EAP verwenden.
Weitere Informationen zur Verwendung von Maven mit JBoss EAP finden Sie unter Verwendung von Maven mit JBoss EAP im JBoss EAP Entwicklungsleitfaden.
3.3.2. Verwendung von Maven mit Quickstarts Link kopierenLink in die Zwischenablage kopiert!
Die für Build und Deployment von Anwendungen auf der JBoss EAP 7 erforderlichen Artefakte und Abhängigkeiten werden auf einem öffentlichen Repository gehostet. Beim Start mit JBoss EAP 7 Quickstarts ist es nicht mehr nötig Ihre Maven settings.xml Datei zur Verwendung dieser Repositorys beim Build von Quickstarts zu konfigurieren. Die Maven Repositorys sind jetzt in den POM Dateien des Quickstart-Projekts konfiguriert. Diese Konfigurationsmethode soll den Einstieg in die Quickstarts erleichtern, wird jedoch im Allgemeinen nicht für Produktionsprojekte empfohlen, da sie Ihren Build verlangsamen kann.
Red Hat JBoss Developer Studio umfasst Maven, dies muss also nicht eigens heruntergeladen und installiert werden. Die Verwendung von JBoss Developer Studio Version 11.0 oder höher wird empfohlen.
Falls Sie die Maven-Befehlszeile für Build und Deployment Ihrer Anwendungen verwenden wollen, müssen Sie zuerst Maven vom Apache Maven Projekt entsprechend der Anleitung in der Maven-Dokumentation herunterladen und installieren.
3.3.3. Download und Ausführung der Quickstarts Link kopierenLink in die Zwischenablage kopiert!
3.3.3.1. Download der Quickstarts Link kopierenLink in die Zwischenablage kopiert!
Die JBoss EAP kommt mit einem umfassenden Satz an Quickstart-Codebeispielen, die den Benutzern beim Schreiben von Anwendungen mittels verschiedener Java EE 7 Technologien helfen sollen. Die Quickstarts können vom Red Hat Kundenportal heruntergeladen werden.
- Melden Sie sich beim Red Hat Kundenportal an.
- Klicken Sie auf Downloads.
- Klicken Sie in der Produkt Downloads Liste auf Red Hat JBoss Enterprise Application Platform.
- Wählen Sie 7.1 in der Auswahlliste Version aus.
- Suchen Sie den Eintrag Red Hat JBoss Enterprise Application Platform 7.1.0 Quickstarts in der Tabelle und klicken Sie auf Download.
- Speichern Sie die Zip-Datei im gewünschten Verzeichnis.
- Entpacken Sie die Zip-Datei.
3.3.3.2. Ausführen der Quickstarts im JBoss Developer Studio Link kopierenLink in die Zwischenablage kopiert!
Sobald die Quickstarts heruntergeladen sind, können Sie ins JBoss Developer Studio importiert und in der JBoss EAP bereitgestellt werden.
Importieren der Quickstarts ins JBoss Developer Studio
Jeder Quickstart wird mit einer POM Datei geliefert, die seine Projekt- und Konfigurationsinformationen enthält. Mit dieser POM Datei können Sie den Quickstart einfach ins JBoss Developer Studio importieren.
Befindet sich Ihr Quickstart-Projektordner beim Import ins JBoss Developer Studio innerhalb der IDE-Arbeitsfläche, so generiert IDE einen ungültigen Projektnamen und WAR-Archivnamen. Stellen Sie sicher, dass sich Ihr Quickstart-Projektordner außerhalb der IDE-Arbeitsfläche befindet, ehe Sie anfangen!
- Starten Sie das JBoss Developer Studio.
-
Wählen Sie Datei
Import. Wählen Sie Maven
Bestehende Maven Projekte und klicken Sie dann auf Weiter. Abbildung 3.1. Import bestehender Maven Projekte
Gehen Sie zum gewünschten Quickstart-Verzeichnis (zum Beispiel
helloworldQuickstart) und klicken Sie auf OK. Das Projekte Listenfeld wird mit derpom.xmlDatei des gewählten Quickstart-Projekts bestückt.Abbildung 3.2. Auswahl von Maven-Projekten
- Klicken Sie auf Fertigstellen.
Führen Sie den helloworld Quickstart aus
Durch die Ausführung des helloworld Quickstarts kann man ganz einfach prüfen, ob der JBoss EAP Server konfiguriert ist und ordnungsgemäß läuft.
- Wenn Sie noch keinen Server definiert haben, fügen Sie den JBoss EAP-Server dem JBoss Developer Studio hinzu. Siehe Verwendung der Runtime Detection zur Einrichtung von JBoss EAP über die IDE im Leitfaden Erste Schritte mit JBoss Developer Studio Tools.
Klicken Sie rechts auf das Projekt helloworld in der Registerkarte Project Explorer und wählen SieAusführen als
Ausführung auf Server aus. Abbildung 3.3. Ausführen als - Ausführen auf Server
Wählen Sie den JBoss EAP 7.1 Server aus der Serverliste aus und klicken Sie auf Weiter.
Abbildung 3.4. Ausführen auf Server
Der helloworld Quickstart ist bereits zur Konfiguration auf dem Server aufgelistet. Klicken Sie auf Fertigstellen um den Quickstart bereitzustellen.
Abbildung 3.5. Bearbeiten von auf dem Server konfigurierten Ressourcen
Überprüfen Sie die Ergebnisse.
-
In der Registerkarte Server ändert sich der JBoss EAP 7.1 Serverstatus auf
Started. Der Konsole Reiter zeigt Nachrichten zum JBoss EAP Server-Start und zum Deployment des
helloworldQuickstarts.WFLYUT0021: Registered web context: /helloworld WFLYSRV0010: Deployed "helloworld.war" (runtime-name : "helloworld.war")
WFLYUT0021: Registered web context: /helloworld WFLYSRV0010: Deployed "helloworld.war" (runtime-name : "helloworld.war")Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Die Anwendung
helloworldfinden Sie unter http://localhost:8080/helloworld, sie zeigt den TextHello World!an.
-
In der Registerkarte Server ändert sich der JBoss EAP 7.1 Serverstatus auf
Weitere Informationen zum helloworld Quickstart finden Sie unter Den helloworld Quickstart erkunden.
Führen Sie den bean-validation Quickstart aus
Einige Quickstarts, wie der bean-validation Quickstart, bieten keine Benutzerschnittstellen-Schicht und stellen stattdessen Arquillian-Tests bereit um ihre Funktionalität zu demonstrieren.
-
Importieren Sie den
bean-validationQuickstart ins JBoss Developer Studio. - Klicken Sie auf der Registerkarte Servers rechts auf den Server und wählen Sie Start aus, um den JBoss EAP-Server zu starten. Wenn Sie keine Registerkarte Servers sehen oder noch keinen Server definiert haben, fügen Sie den JBoss EAP-Server dem JBoss Developer Studio hinzu. Siehe Verwendung der Runtime Detection zur Einrichtung von JBoss EAP über die IDE im Leitfaden Erste Schritte mit JBoss Developer Studio Tools.
-
Klicken Sie rechts auf das Projekt
bean-validationauf der Registerkarte Project Explorer und wählen Sie Ausführen alsMaven Build aus. Geben Sie Folgendes in das Ziele Eingabe-Feld ein und klicken Sie dann auf Ausführen.
clean verify -Parq-remote
clean verify -Parq-remoteCopy to Clipboard Copied! Toggle word wrap Toggle overflow Abbildung 3.6. Konfiguration bearbeiten
Überprüfen Sie die Ergebnisse.
Der Konsole Reiter zeigt die Ergebnisse des
bean-validationArquillian-Tests:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3.3.3. Ausführen der Quickstarts von der Befehlszeile aus Link kopierenLink in die Zwischenablage kopiert!
Build und Bereitstellung von Quickstarts von der Befehlszeile aus sind mit Maven einfach. Wenn Sie Maven noch nicht installiert haben, gehen Sie zum Apache Maven Projekt um es herunterzuladen und zu installieren.
Eine README.md Datei im root Verzeichnis des Quickstarts enthält allgemeine Informationen über Systemanforderungen, über die Konfiguration von Maven, über das Hinzufügen von Benutzern und über die Ausführung von Quickstarts.
Jeder Quickstart enthält zudem seine eigene README.md Datei, die spezifische Anweisungen und Maven-Befehle zur Ausführung des Quickstarts bereitstellt.
Führen Sie den helloworld Quickstart von der Befehlszeile aus
-
Überprüfen Sie die
README.mdDatei im root-Verzeichnis des helloworld Quickstarts. Starten Sie den JBoss EAP-Server.
EAP_HOME/bin/standalone.sh
$ EAP_HOME/bin/standalone.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Gehen Sie zum helloworld Quickstart-Verzeichnis.
Build und Deployment des Quickstarts über den in der
README.mdDatei angegebenen Maven-Befehl.mvn clean install wildfly:deploy
$ mvn clean install wildfly:deployCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Die Anwendung helloworld ist nun unter http://localhost:8080/helloworld verfügbar und zeigt den Text
Hello World!an.
3.4. Gehen Sie die Quickstart-Beispiele durch Link kopierenLink in die Zwischenablage kopiert!
3.4.1. Erkunden Sie den Quickstart helloworld Link kopierenLink in die Zwischenablage kopiert!
Der helloworld Quickstart demonstriert, wie sich ein einfaches Servlet auf JBoss EAP bereitstellen lässt. Die Geschäftslogik ist in einem Dienst verkapselt, der als Contexts and Dependency Injection (CDI) Bean bereitgestellt und in ein Servlet eingesetzt wird. Dieser Quickstart ist der Startpunkt, über den Sie sicherstellen können, dass Sie den Server korrekt konfiguriert und gestartet haben.
Detaillierte Anweisungen zum Erstellen und Bereitstellen dieses Quickstarts über die Befehlszeile finden Sie in der Datei README.html am Ursprung des Quickstart-Verzeichnisses helloworld. Dieses Thema zeigt Ihnen, wie Sie das Red Hat JBoss Developer Studio zur Verwendung des Quickstarts nutzen können und geht davon aus, dass Sie das Red Hat JBoss Developer Studio installiert haben, Maven konfiguriert haben und den Quickstart helloworld importiert und erfolgreich ausgeführt haben.
Voraussetzungen
- Installieren Sie JBoss Developer Studio. Anweisungen finden Sie unter Installation des JBoss Developer Studio Stand-Alone über den Installer im JBoss Developer Studio Installationshandbuch.
-
Führen Sie den Quickstart
helloworldaus. Anweisungen finden Sie unter Ausführen der Quickstarts im JBoss Developer Studio. -
Prüfen Sie, dass der Quickstart
helloworlderfolgreich in JBoss EAP bereitgestellt wurde, indem Sie den Webbrowser öffnen und über http://localhost:8080/helloworld auf die Anwendung zugreifen.
Untersuchen Sie die Verzeichnisstruktur
Den Code für den helloworld Quickstart finden Sie im Verzeichnis QUICKSTART_HOME/helloworld/. Der helloworld Quickstart besteht aus einem Servlet und einer CDI-Bean. Er umfasst zudem die Datei beans.xml im Verzeichnis WEB-INF/ der Anwendung mit Versionsnummer 1.1 und einen bean-discovery-mode all. Diese Marker-Datei identifiziert den WAR als Bean-Archiv und teilt JBoss EAP mit, in dieser Anwendung nach Beans zu suchen und die CDI zu aktivieren.
Das Verzeichnis src/main/webapp/ enthält die Dateien für den Quickstart. Alle Konfigurationsdateien für dieses Beispiel befinden sich im Verzeichnis WEB-INF/ in src/main/webapp/, einschließlich der Datei beans.xml. Das Verzeichnis src/main/webapp/ umfasst zudem eine Datei index.html, die eine einfache Meta-Aktualisierung verwendet, um den Browser des Benutzers zum Servlet weiterzuleiten, das sich unter http://localhost:8080/helloworld/HelloWorld befindet. Für den Quickstart ist keine web.xml Datei erforderlich.
Untersuchen Sie den Code
Die Paket-Deklaration und -Importe sind aus diesen Auflistungen ausgeschlossen. Die vollständige Auflistung finden Sie im Quellcode des Quickstarts.
Gehen Sie den
HelloWorldServletCode durch.Die Datei
HelloWorldServlet.javabefindet sich im Verzeichnissrc/main/java/org/jboss/as/quickstarts/helloworld/. Dieses Servlet sendet die Informationen zum Browser.Beispiel: HelloWorldServlet Klassencode
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand Tabelle 3.1. HelloWorldServlet Details Zeile Hinweis 43
Sie müssen nur die Annotation
@WebServlethinzufügen und eine Zuordnung zu einer URL, über die auf das Servlet zugegriffen wird, bereitstellen.46-48
Jede Webseite benötigt korrekt geformtes HTML. Dieser Quickstart verwendet statische Strings, um den Mindest-Header und Footer-Output zu schreiben.
50-51
Diese Zeilen fügen die HelloService CDI-Bean ein, die die tatsächliche Nachricht erstellt. Wird die API von HelloService nicht geändert, können wir so die Implementierung von HelloService später ändern, ohne die Ansichtsebene zu ändern.
58
Diese Zeile ruft den Dienst ab, um die Nachricht "Hello World" zu erstellen und sie über die HTTP-Anfrage auszugeben.
Gehen Sie den
HelloServiceCode durch.Die Datei
HelloService.javabefindet sich im Verzeichnissrc/main/java/org/jboss/as/quickstarts/helloworld/. Dieser Dienst gibt einfach eine Nachricht aus. Es ist kein XML und keine Annotations-Registrierung erforderlich.Beispiel: HelloService Klassencode
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.2. Erkunden Sie den numberguess-Quickstart Link kopierenLink in die Zwischenablage kopiert!
Der numberguess Quickstart zeigt Ihnen, wie Sie eine einfache, nicht persistente Anwendung erstellen und in JBoss EAP bereitstellen können. Informationen werden über eine JSF-Ansicht angezeigt und die Geschäftslogik in zwei CDI-Beans eingekapselt. Im numberguess Quickstart haben Sie zehn Versuche, eine Zahl zwischen 1 und 100 zu erraten. Nach jedem Versuch wird Ihnen mitgeteilt, ob Sie zu hoch oder zu niedrig lagen.
Den Code für den Quickstart numberguess finden Sie im Verzeichnis QUICKSTART_HOME/numberguess/, wobei QUICKSTART_HOME das Verzeichnis ist, in das Sie die JBoss EAP Quickstarts heruntergeladen und in das Sie diese entpackt haben. Der numberguess Quickstart besteht aus Beans, Konfigurationsdateien und Facelet-Ansichten (JSF) und ist als WAR-Modul gepackt.
Detaillierte Anweisungen zum Erstellen und Bereitstellen dieses Quickstarts über die Befehlszeile finden Sie in der Datei README.html am Ursprung des Quickstart-Verzeichnisses helloworld. Die folgenden Beispiele nutzen Red Hat JBoss Developer Studio, um den Quickstart auszuführen.
Voraussetzungen
- Installieren Sie JBoss Developer Studio. Anweisungen finden Sie unter Installation des JBoss Developer Studio Stand-Alone über den Installer im JBoss Developer Studio Installationshandbuch.
-
Führen Sie den Quickstart
numberguessaus. Anweisungen finden Sie unter Ausführen der Quickstarts im JBoss Developer Studio, ersetzen Sie in der Anleitunghelloworlddurchnumberguess. -
Prüfen Sie, dass der Quickstart
numberguesserfolgreich in JBoss EAP bereitgestellt wurde, indem Sie den Webbrowser öffnen und über http://localhost:8080/numberguess auf die Anwendung zugreifen.
Untersuchen Sie die Konfigurationsdateien
Alle Konfigurationsdateien für dieses Beispiel finden Sie im Verzeichnis QUICKSTART_HOME/numberguess/src/main/webapp/WEB-INF/ des Quickstarts.
Untersuchen Sie die Datei
faces-config.xml.Dieser Quickstart verwendet Version JSF 2.2 des Dateinamens
faces-config.xml. Eine standardisierte Version von Facelets ist der Standard-Ansichtshandler in JSF 2.2 und benötigt daher keine Konfiguration. Diese besteht nur aus dem Root-Element und ist eine einfache Marker-Datei, die darauf hinweist, dass JSF in der Anwendung aktiviert sein sollte.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Gehen Sie die Datei
beans.xmldurch.Die Datei
beans.xmlumfasst die Versionsnummer 1.1 und denbean-discovery-modeall. Diese Datei ist eine Marker-Datei, die WAR als Bean-Archiv identifiziert und JBoss EAP mitteilt, in dieser Anwendung nach Beans zu suchen und die CDI zu aktivieren.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Dieser Quickstart benötigt keine Datei web.xml.
3.4.2.1. Gehen Sie den JSF-Code durch Link kopierenLink in die Zwischenablage kopiert!
JSF verwendet die Dateierweiterung .xhtml für Quelldateien, liefert die gerenderten Ansichten jedoch über die Erweiterung .jsf. Die Datei home.xhtml befindet sich im Verzeichnis src/main/webapp/.
Beispiel: JSF Quellcode
Die folgenden Zeilennummern entsprechen denen, die bei Ansicht der Datei in JBoss Developer Studio angezeigt werden.
| Zeile | Hinweis |
|---|---|
|
36-40 |
Dies sind die Nachrichten, die dem User gesendet werden können: "Higher!" und "Lower!" |
|
45-48 |
Wenn der Benutzer rät, verringert sich der Bereich der Zahlen, die geraten werden können. Der Satz ändert sich, um sicherzustellen, dass der Benutzer den Zahlenbereich eines gültigen Rateversuchs kennt. |
|
55-58 |
Dieses Eingabefeld ist mit einer Bean-Eigenschaft verbunden, die einen Wertausdruck verwendet. |
|
58 |
Eine Validator-Bindung wird verwendet, um sicherzustellen, dass der Benutzer nicht versehentlich eine Zahl außerhalb des gültigen Ratebereichs eingibt. Ohne diesen Validator könnte der Benutzer einen Rateversuch für eine ungültige Zahl verbrauchen. |
|
59-61 |
Der Benutzer benötigt einen Weg, den Rateversuch zum Server zu senden. Hier binden wir die Aktionsmethode an die Bean. |
3.4.2.2. Gehen Sie die Klassendateien durch Link kopierenLink in die Zwischenablage kopiert!
Alle numberguess Quickstart-Quelldateien finden Sie im Verzeichnis QUICKSTART_HOME/numberguess/src/main/java/org/jboss/as/quickstarts/numberguess/. Die Paket-Deklaration und -Importe sind aus diesen Auflistungen ausgeschlossen. Die vollständige Auflistung finden Sie im Quellcode des Quickstarts.
Gehen Sie den
Random.javaQualifikator-Code durchEin Qualifikator wird verwendet, um Unklarheiten zwischen den zwei Beans zu vermeiden, die beide für eine Injektion auf Grundlage ihres Typs in Frage kommen. Weitere Informationen zu Qualifikatoren finden Sie unter Einen Qualifikator verwenden, um eine unklare Injektion zu lösen im JBoss EAP Entwicklerleitfaden. Der Qualifikator
@Randomwird zur Injektion einer Zufallszahl verwendet.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Gehen Sie den
MaxNumber.javaQualifikator-Code durchDer
@MaxNumberQualifikatorwird zur Injektion der erlaubten Höchstzahl verwendet.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Gehen Sie den
Generator.javaCode durchDie Klasse
Generatorerstellt die Zufallszahl über eine Producer-Methode und stellt die mögliche Höchstzahl über dieselbe Methode zur Verfügung. Diese Klasse ist auf Anwendungsebene ausgelegt, damit nicht jedes Mal eine andere Zufallszahl erstellt wird.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Gehen Sie den
Game.javaCode durchDie auf Sitzungsebene ausgelegte Klasse
Gameist der primäre Zugangspunkt für die Anwendung. Sie ist dafür verantwortlich, das Spiel einzurichten oder zurückzusetzen, den Rateversuch des Benutzers zu erfassen und zu validieren und dem Benutzer über eineFacesMessageFeedback zu geben. Sie verwendet eine Post-Construct-Lifecycle-Methode, um das Spiel zu initialisieren, indem eine Zufallszahl aus der Bean@Random Instance<Integer>abgerufen wird.Beachten Sie die Annotation
@Namedin der Klasse. Diese Annotation ist nur erforderlich, wenn die Bean über Expression Language (EL), in diesem Fall#{game}, für eine JSF-Ansicht verfügbar gemacht werden soll.Copy to Clipboard Copied! Toggle word wrap Toggle overflow