Loading…

Mein neuer 15 Stunden Android 7 Kurs

Lern Android 7 und Google Firebase
jetzt Loslegen

Eine JavaEE Webservice erstellen und Testen

Was sind XML Web Services (JAX-WS)?

MitXML Web Services (JAX-WS) kann man auf einem Entfernten Server Methoden aufrufen. und Daten zuwischen Server und Client auszutauschen.
XML Web Services (JAX-WS) sind Standartisiert und damit Platformunabhängig.
So können Programme verschiedener Sprachen mit dem Selben Server Arbeiten.
Der Standard für java ist die Spezifikation in JSR224.

Die Eigentlichen Daten und Informationen werden via XML Dialekten ausgetauscht.
Die Relevanten Dialekte sind:

  • SOAP ist das XML Webservices Datenaustauschvormat.
  • WSDL
    Das ist die Webservice Description Langrage.
    Damit werden Methoden des Webservices und deren rückgaben sowie die übertragenen daten Beschrieben.
  • UDDI
    Dient dazu informationen über webservices einzuholen.
    UDDI ist optional. Das spielt aber nur in grösseren Installationen eine Rolle.

XML Web Services (JAX-WS) der Anwendungsserver

Der XML Web Services (JAX-WS) wird innerhalb einer JavaEE anwendung erstellt. Das sind Java Enterprice anwendungen die nicht als JAR laufen sondern als Application in einem Application Server. Das klingt erstmal sehr Verwirrend aber dahinter steckt vollgendes:
Wie bei einer PHP Webseite, die auf einem Webserver läuft läuft eine Java EE Anwendung einfach auf einem ApplicationServer. Application Server sind beispielsweise Tomcat oder Glasfish. Im Prinzip schriebt man also eine Anwendung fürs Internet die dann auf einem Server läuft. Der client, das kann eine websiete oder auch eine einfache .jar anwendung sein kreift dann darauf zu.

 

Die Umsetzung

Die Umsetzung ist denkbarst einfach. Im Prinzip schreibt man nur eine Normale Klasse und Annotiert sie als webservice. Die Methoden die man vom Server aufrufen will werden einfach als @WebService annotiert. Der Server kümmert sich um den rest. Also wirklich spielend einfach.

Die Definizion einer  Klasse die als Webservice genutzt werden soll geschied mit der  @WebService- Annotation.
Mit der @webMethod Annotation wartet der Server auf den Methodenaufruf.
Der Client ruft die Methode auf und wartet dann auf die rückgabe – d.h bis der Server fertig sit.!
@oneWay signalisiert der Server dem Client das er nicht auf eine rückgabe warten muss. Der Klient macht also sofotz danach weiter. Man nennt diese Methoden fire and Forget.

Das ersteXML Web Services (JAX-WS) Projekt

In einem Ersten Projekt sollen einmal Zwei Methoden geschrieben werden eine nach der Fire and forget methode eine bei der der Client auf rückgabe wartet.
Ich verwende hier die IDE Eclipse und den Applicationserver Wildfly. Man kann auch einfach die KOMPLETTE Netbeans umgebung herunterladen sie hat sofort alles was man Braucht und bringt den Glasfishserver mit.

Neues Projekt anlegen und neues ein Enterpreise Application Projekt auswählen.

neuesEEEProjektErstellen

Der server der VORHER Konfiguriert wurde wird ausgewählt! (Bei Netbeans ist das von hausaus dabei wenn man die Vollständige version nutzt)

Als nächstes braucht man lediglich das Webmodul, denn alle Services werden darin Definiert.neuesEEEProjektErstellen1

Jetzt wird eine neue Klasse angelegt der Paketname ist beliebig. Ich nehme den Namen Testklasse.

Jetzt muss die klasse als Webservice erkannt werden, dafür fügt man die Webservice annotation der klasse hinzu.

Ich habe Zwei Methoden geschrieben eine mit Rückgabewert und eine Fire and Forget methode. Der Client macht bei der letzten weiter egal wie lange das rechnen auf dem Server Dauert. Ich denke das ist so einfach das man es nicht genauer beschrieben muss: Im Prinzip war es das schon von der Server-Seite. Jetzt kann man eine client Software schreiben und darauf zukreifen.

Ein Direckter aufruf im Browser ist nicht möglich ruft man jetzt allerdings die WSDL Datei ab, erhätt man die Ausgabe:

Das ist die XML Beschreibung des Servers, alles was der Client wissen muss damit er die Funktion des Servers nutzen kann.

XML Testen

Um die Methode zu Testen kann man SoapUI nutzen. das ist ein kleines Programm mit dem man XML Service anfragen erzeugen kann und die Antworten erhällt.

Damit lassen sich Testhalber anfragen an den Server senden.

Nach dem Start der Anwendung legt man ein Neues soap Projekt an neuesEEEProjektErstellen8Webservice

Jetzt kann man die Requests Testen

neuesEEEProjektErstellen9

Im Prinzip war es das schon weiter geht es dann mit dem Client. Zum Prinzip der Clients erfärst du hier mehr.

2 thoughts on “Eine JavaEE Webservice erstellen und Testen

Comments are closed.