Java EE 7: Web Services

Aufbau der Beispiel-Applikation

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Dieses Video klärt vorab, wie die Applikation architektonisch aussehen soll und welche Technik zum Einsatz gelangt. Sie richten die Datenbank und die Datenquelle im WildFly Server ein und setzen die Projektstruktur samt der benötigten Referenzen auf.

Transkript

In diesem Video werden wir uns über die von uns zu implementierende kleine Applikation unterhalten. Diese Applikation wird eine Kundenverwaltung sein und sie wird verschiedene Technologien, die wir im Laufe dieses Video-Trainings bereits gesehen haben, miteinander zum Einsatz bringen. Wir werden uns darüber unterhalten, was wir bauen müssen und wir werden uns auch darüber unterhalten, welche vorbereitenden Schritte notwendig sind, damit wir uns später tatsächlich nur um die reine Implementierung kümmern müssen. Lassen Sie uns zunächst klären, was wir bauen werden. Wir werden eine Kundenverwaltung erstellen. In dieser Kundenverwaltung werden wir Kunden anlegen, bearbeiten, die Kundendaten abrufen und Kunden löschen können. Diese Kundenverwaltung wird architektonisch so aufgebaut sein, dass wir eine MySQL Datenbank haben. Mit dieser MySQL Datenbank kommuniziert ein Data-Layer, also eine Schicht, die die Daten hält und verwaltet. Es gibt einen RESTful Service, der seinerseits mit dem Data-Layer kommuniziert, es gibt einen WebSocket, der vom Data-Layer aus angesprochen wird und sowohl RESTful Service als auch WebSocket stehen dann einem HTML-Frontend zur Verfügung, das heißt, da finden dann Kommunikation zwischen der Webseite und dem RESTful Service, beziehungsweise der Webseite und dem WebSocket statt. Das ist das, was wir bauen werden. Wir setzen dabei auf verschiedene Technologien aus dem JavaEE und Webumfeld. Die Webseiten erstellen wir mit HTML, hier setzen wir das Twitter Bootstrap Framework ein. Ebenfalls verwenden wir JavaScript, da werden wir ein wenig jQuery und eine Menge AngularJS einsetzen. Die Managed Beans, also den Data-Layer, werden wir mit Hilfe von CDI und EJB Komponenten und Technologien bauen und die Persistenzschicht, das, was also vom Data-Layer aus angesteuert wird, arbeitet auf Ebene der JPA Ebenfalls verwenden wir JAX-RS, um die RESTful Services zu implementieren und WebSockets, um die Kommunikation mit dem Browser beidseitig gestalten zu können. Nach diesen Vorüberlegungen, lassen Sie uns nun einen Blick darauf werfen, wie die fertige Applikation aussieht. Hier sehen wir nun die fertige Kundenverwaltung. Wir können hier Kunden anlegen und ihnen eine Adresse zuweisen und sie dann speichern. Eine entsprechende Meldung wird angezeigt und nun kann ich diesen Kunden auch wieder bearbeiten, die entsprechende Änderung wird an den Server übertragen und wir bekommen sie hin und her. Die Adressen kann ich löschen, ich kann den ganzen Kunden löschen, auch das klappt völlig problemlos. Sie sehen, das ist eine komplette kleine Kundenverwaltung und nun werden wir uns anschauen, wie wir diese Kundenverwaltung implementieren können. Natürlich, im ersten Schritt widmen wir uns zunächst dem Einrichten der Entwicklungsumgebung und dem Aufsetzen des Projektes. Anschließend können wir uns um die verschiedenen Komponenten kümmern, die wir vorhin besprochen haben. Der erste Schritt beim Aufsetzen unserer Kundenverwaltung besteht darin, dass wir zunächst ein neues Enterprise Projekt anlegen. Das können wir über New und dann aus dem Kontextmenü über Enterprise Application Project auswählen, sollte es dort nicht erscheinen, finden Sie diesem Projekttyp über Other und können hier ebenfalls nach Enterprise Application Project suchen. Der Projektname ist CustomerManagement, die WildFly 8.x Runtime sollte hier ausgewählt sein, sollte dem noch nicht so sein, können Sie über New Runtime… eine entsprechende Runtime hinzufügen und die EAR Version ist sieben. Wir fügen zwei Module hinzu, nämlich ein EJB Modul und ein Web modul und ein Klick auf Finish legt die Projekte entsprechend an. Nun müssen wir noch Referenzen definieren. Zum einen benötigen wir im Webprojekt eine Referenz auf die WebSockets Spezifikation. Die fügen wir hinzu, in dem wir einen Rechtsklick auf dieses Projekt machen und dann über das Kontextmenü Build Path und dort die Option über Configure Build Path auswählen. Nun können wir über den Reiter Libraries auf den Button Add External JARs… klicken und können dann die WebSocket API Spezifikation hinzufügen. Die befindet sich unterhalb des Wurzelverzeichnis des WildFly Servers und zwar im Ordner modules system layers basejavaxwebsocketapimain und dann gelangen Sie zu dem entsprechenden JAR Archiv. Der Pfad ist etwas kompliziert, aber das müssen wir zum Glück auch nur einmal machen. Eine weitere Komponente benötigen wir auf Ebenen des EJB Projektes und zwar benötigen wir hier eine Bibliothek, die die Jackson API bekannt macht. Hintergrund ist der, dass unter der Haube vom WildFly Server das Jackson Framework für das Serialisieren und Deserialisieren von Json-Strukturen benutzt wird. Es wird einen Fehler geben, wenn wir nicht dafür sorgen, dass unbekannte Felder in Json-Strukturen ignoriert werden können. Das geht leider mit Hausmittelchen nicht, deswegen muss man wissen, welches Json-Framework auf dem Server läuft und dann kann man mit den entsprechenden Json-Frameworks direkt arbeiten. Auch Jackson, als ein Framework, arbeitet unter der Json-P Spezifikation, aber es ist eben eine konkrete Implementierung und diese konkrete Implementierung liefert uns die Funktionalität, die wir benötigen, wenn wir unbekannte Felder in Json-Strukturen ignorieren wollen. Was wir benötigen, ist lediglich ein Verweis auf die aktuelle Version der Jackson Annotations Bibliothek, die können Sie im Internet finden, ansonsten befindet die sich auch im Code, den Sie mit diesem Video-Training erhalten können. Ich habe diese Bibliothek bereits heruntergeladen und nun ziehe ich sie auf das EJB Projekt und lasse sie dort fallen. Nun muss ich beim EJB Projekt den Build Path ebenfalls anpassen, ein Rechtsklick auf das Projekt und dann kann ich über das Kontextmenü Build Path auf die Option Configure Build Path zugreifen und kann hier im Reiter Libraries auf die Schaltfläche Add JARs... klicken und dann die eben hinzugefügte Bibliothek hier auswählen. Ein letzter Schritt ist noch notwendig und zwar benötigt das Webprojekt einen Verweis auf das EJB Projekt. Der Hintergrund ist der, dass wir im Webprojekt gemeinsam genutzte Komponenten verwenden wollen und die definieren wir im EJB Projekt. Aus diesem Grund machen wir einen Rechtsklick auf das Webprojekt, klicken Build Path und erneut Configure Build Path…, wechseln hier in den Reiter Projects und sagen Add... und fügen einen Verweis auf das EJB Projekt hinzu. Nachdem wir das alles bestätigt haben, sind unsere Projekte soweit konfiguriert, dass wir uns nun der Konfiguration der Datenbank widmen können und auch der Konfiguration der Datenquelle widmen können, die im WildFly Server deployed wird. Zum Konfigurieren der Datenbank öffnen wir die MySQL Workbench. Wir melden uns am Server an und können nun über den Bereich Users and Priviliges einen neuen Benutzer hinzufügen. Diese nennen wir customers. Wir erlauben nur Zugriff von und zu localhost und das Kennwort nennen wir ebenfalls customers. Zugegebenermaßen ein unsicheres Kennwort, aber das tut für unsere Zwecke. Ein Klick auf Apply legt diesen Benutzer an. Nun können wir eine entsprechende Datenbank anlegen, im MySQL Jargon Schema genannt. Die Datenbank heißt ebenfalls customers. Die wird einfach angelegt dann wechseln wir zurück in den Reiter Users and Priviliges, klicken einmal auf Refresh, wechseln auf den Eintrag customers und wählen hier drüben im Bereich Details den Eintrag Schema Privileges aus. Hier klicken wir auf Add Entry und wählen das gerade angelegte customers Schema, sagen OK, klicken auf die Schaltfläche Select "ALL", klicken auf Apply und haben nun die Datenbank customers für den Benutzer customers mit dem Kennwort customers angelegt. Das ist wunderbar, denn nun besteht der letzte Schritt darin, den WildFly Server so zu konfigurieren, dass er eine Datenquelle in Richtung dieser Datenbank öffnet. Um dies bewerkstelligen zu können, sollten wir -falls noch nicht geschehen- zunächst einmal einen Management User anlegen. Das können wir über die Kommandozeile erledigen und zwar wechseln wir in das bin Verzeichnis der WildFly Installation und wählen hier das Script add-user.bat aus und wir wählen hier beim Start zunächst einmal den Eintrag a Management User aus. Nun vergeben wir dem Benutzer einen Benutzernamen. Ich entscheide mich hier für etwas sehr Primitives, nämlich admin und werde dementsprechend auch darauf hingewiesen, dass dieser Name einfach ist. Ich akzeptiere ihn dennoch. Nun vergebe ich ein Kennwort. Auch dieses Kennwort ist zugegebenermaßen nicht sonderlich komplex, dennoch wiederhole ich es, Gruppen muss ich nicht angeben und ich möchte diesen Benutzer hinzufügen und die letzte Frage kann ich verneinen, dieser Benutzer soll nicht über Servergrenzen hinweg arbeiten können. Damit habe ich einen Nur kann ich den WildFly Server starten. Das kann ich machen, indem ich im selben Verzeichnis das Skript standalone.bat ausführe, dann startet nämlich der Server. Das ist nach einigen Sekunden erledigt und nun kann ich die Datenquelle konfigurieren. Bevor ich da jedoch rangehe, werde ich zunächst einmal den Treiber noch installieren müssen. Ich habe hier zwei Windows Explorer-Fenster offen. Das erste Windows Explorer-Fenster verweist auf den Ordner, wo der ConnectorJ von MySQL installiert ist. Dort befindet sich das Java Archiv mysql-connector-java in der aktuellen Version. Das zweite Fenster zeigt auf denstandalone deployments Ordner des WildFly Servers und hier ziehe ich oder kopiere ich den Connector einfach hinein. Nach einigen Sekunden entdeckt der Server, dass der Treiber in diesem Verzeichnis gelandet ist und deployed ihn seinerseits. Damit ist der Treiber dem Server bekannt und wir können uns nun tatsächlich der Einrichtung einer Datenquelle widmen. Zu diesem Zweck öffne ich den Internet Explorer und gebe die Adresse http://localhost:9990 ein. Nun muss ich mich mit dem gerade eben angelegten Benutzer anmelden und kann in den Bereich Deployments wechseln, hier sehe ich schon meinen Deployment und wechsle nun in den Bereich Configuration und dann öffnet sich automatisch auch schon der JDBC Datasources Bereich. Hier klicke ich auf die Schaltfläche Add und füge eine neue Datenquelle hinzu. Der Name dieser Datenquelle ist Customers und der JDBC Name ist java:jboss/datasources/customers, alles klein geschrieben. Ein Klick auf Next führt mich zur Auswahl des Treibers, hier wähle ich den vorhin deployten mysql Treiber aus, ein weiterer Klick auf Next lässt mich die Connection URL definieren und die lautet jdbc:mysql://localhost/ und dann der Name der Datenbank, die wir angelegt haben, nämlich customers. Benutzername ist customers und das Kennwort ist ebenfalls das Kennwort customers. Ein Klick auf Test Connection lässt mich verifizieren, dass der Test erfolgreich abgeschlossen werden konnte und die Verbindung somit erstellt werden kann. Deswegen bestätige ich das, klicke auf die Schaltfläche Done und habe eine Datenquelle eingerichtet. Nun wähle ich die noch in der Liste aus und klicke auf den Button Enable. Die Abfrage bestätige ich und nun ist meine Datenquelle komplett vordefiniert und einsatzbereit und wir haben alle notwendigen Vorarbeiten abgeschlossen und können uns der Implementierung der Applikation als solches widmen. In diesem Video haben wir besprochen, was wir für eine Applikation bauen wollen und wie diese Applikation architektonisch aufgebaut sein soll. Wir haben ebenfalls besprochen, wie die Kommunikation zwischen den verschiedenen Schichten abläuft und welche Technologien wir einsetzen. Darüber hinaus haben wir die Applikation im Eclipse angelegt, haben eine Datenbank angelegt, haben einen Datenbankbenutzer angelegt und haben die Datenquelle im WIldFly Server auch schon angelegt.

Java EE 7: Web Services

Steigen Sie ein in die Java-Enterprise-Welt und lernen Sie, wie Nachrichten ausgetauscht und Dienste definiert werden.

5 Std. 13 min (30 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!