Generieren eines SOAP Webservice (Java)
In diesem Kapitel wird erläutert, wie Sie einen SOAP-Webservice generieren. Dabei müssen die im Kapitel SOAP-Webservice-Konfiguration beschriebenen Schritte 2-5 durchgeführt werden. Der Ablauf ist der Folgende:
1.Generierung von Code (in diesem Beispiel Java) anhand eines MapForce-Beispielprojekts.
2.Erstellung des Codes mit Hilfe von Apache Ant
3.Bereitstellung des Service auf Apache Tomcat
4.Aufruf des Web-Diensts mit Hilfe von Altova XMLSpy
Nähere Informationen zu den einzelnen Verfahren finden Sie in den Unterabschnitten weiter unten. Das in diesem Kapitel beschriebene Webservice-Beispielprojekt hat den Namen getAuthor.mfp. Das Projekt wurde im Kapitel Erstellen eines SOAP-Webservice-Projekts erstellt. Sie finden dieses Projekt und alle damit in Zusammenhang stehenden Dateien im Ordner Tutorial.
In diesem Beispiel wird aus Gründen der Einfachheit eine einfache Webserver-Konfiguration verwendet. In einer Produktionsumgebung müssen Sie unter Umständen abhängig von Webserver, Sicherheitsvorgaben und anderen Faktoren eine andere Konfiguration verwenden.
Zum Aufrufen des SOAP-Webservice wird hier die XMLSpy Enterprise Edition verwendet. Wenn Sie XMLSpy nicht installiert haben, benötigen Sie einen SOAP-Client, um den Webservice zu testen, oder Sie müssen Programmcode schreiben, der den Webservice aufrufen kann. Sie können den Webservice auch testen, indem Sie in MapForce einen Webservice-Aufruf erstellen.
Herunterladen und Entpacken von Tomcat, Axis2 und Ant
Um die obigen Schritte durchführen zu können, müssen die folgenden Technologien installiert sein.
•Java SE JDK 8, 11, 17, 21 (einschließlich OpenJDK)
•Apache Tomcat (Webserver, der den Host für den Service bildet)
•Apache Axis2 (Webservice-Prozessor und Framework, das die Erstellung, Bereitstellung und Verwendung von mit Tomcat integrierten Webservices erleichtert)
•Apache Ant (Befehlszeilentool, das zur Erzeugung des Codes verwendet wird)
Laden Sie Tomcat, Axis2 (die Binärdatei-Distribution, z.B. axis2-1.8.2-bin.zip, und die WAR-Distribution, z.B. axis2-1.8.2-war.zip), sowie Ant herunter und entpacken Sie die jeweiligen Pakete in ein lokales Verzeichnis. Wir verwenden in diesem Beispiel Tomcat 9.0.93, Axis2 1.8.2 und Ant 1.10.13.
Konfigurieren von Tomcat, Axis2 und Ant
Nachdem Sie Tomcat, Axis2 und Ant entpackt haben, müssen Sie die folgenden Umgebungsvariablen definieren:
•Die Umgebungsvariable CATALINA_HOME muss auf den Ordner gesetzt werden, in dem Tomcat installiert wurde.
•Die Umgebungsvariable ANT_HOME muss auf das Verzeichnis, in dem Ant installiert ist, gesetzt werden.
•Die Umgebungsvariable JAVA_HOME muss auf das Verzeichnis, in dem Java JDK installiert wurde, gesetzt werden.
•Die Umgebungsvariable PATH muss den Pfad zu %ANT_HOME%\bin enthalten.
•Die Umgebungsvariable AXIS2_HOME muss auf das Verzeichnis, in dem die Axis2-Binärdatei-Distribution gespeichert ist, gesetzt werden.
Stellen Sie sicher, dass die korrekten Zugriffsrechte definiert sind, damit Tomcat mit verschiedenen lokalen Ressourcen wie Verzeichnissen, Datenbanken und Dateien interagieren kann.
Integration von Axis2 mit Tomcat
In diesem Beispiel wird der Webservice von der Axis2-Verwaltungsseite aus auf Tomcat hochgeladen. Um Axis2 mit Tomcat zu integrieren, gehen Sie folgendermaßen vor:
1.Kopieren Sie die Datei axis2.war aus dem Distribution-Paket Axis2 WAR in das Verzeichnis %CATALINA_HOME%\webapps von Tomcat.
2.Starten Sie Tomcat. Eine der möglichen Arten, Tomcat zu starten, ist den folgenden Befehl auszuführen: %CATALINA_HOME%\bin\startup.bat (Windows) oder %CATALINA_HOME%\bin\startup.sh (Linux und MacOS).
3.Überprüfen Sie, ob Tomcat ausgeführt wird, indem Sie http://localhost:8080 aufrufen.
4.Überprüfen Sie, ob Axis2 erfolgreich bereitgestellt wurde, indem Sie die folgende Seite aufrufen: http://localhost:8080/axis2.
Überprüfen von Ant
Um zu überprüfen, ob Ant ausgeführt wird, geben Sie in die Befehlszeile ant ein. Die Meldung Buildfile: build.xml does not exist! bedeutet, dass Ant konfiguriert wurde und nach einer Build-Datei sucht. Nähere Informationen zur Ant-Konfiguration finden Sie im Handbuch zu Ant.
Schritt 1: Generieren von Java-Code
Im ersten Schritt wird Java-Code für das Webservice-Projekt generiert. Gehen Sie folgendermaßen vor:
1.Öffnen Sie das Projekt getAuthor.mfp.
2.Klicken Sie mit der rechten Maustaste im Projektfenster auf das Projekt und wählen Sie den Befehl Code generieren in | Java. Generierter Code wird von MapForce standardmäßig in einem neuen Ordner namens output, der sich im selben Ordner wie das Projekt befindet, gespeichert. Wenn Sie die Ausgabeeinstellungen ändern möchten, klicken Sie mit der rechten Maustaste auf das Projekt im Projektfenster und wählen Sie im Kontextmenü den Befehl Eigenschaften.
Nähere Informationen zum Generieren von Java-Code finden Sie unter Generieren von Java-Code. Nähere Informationen zu Projekteinstellungen finden Sie unter Projekteinstellungen.
Schritt 2: Erzeugen von Code
Im Zuge der Codegenerierung wurden mehrere neue Dateien erstellt, darunter eine Datei namens build.xml. Die Datei wird als Konfigurationsskript verwendet, das definiert, wie Quellcode erzeugt werden soll. Dazu gehören die Kompilierung, das Testen, das Verpacken, die Bereitstellung und andere Aufgabe.
Um den im vorherigen Schritt generierten Java-Code zu erzeugen, führen Sie in der Befehlszeile Ant im selben Verzeichnis, in dem sich die Datei build.xml befindet, aus (Abbildung unten). In diesem Tutorial behalten wir die Standardeinstellung unverändert bei. Wie Sie das Ausgabeverzeichnis ändern können, ist unter Projekteinstellungen erläutert.
Sobald der Java-Code erzeugt wurde, wird im Ausgabeverzeichnis eine Axis-Archivdatei (.aar) mit dem Standardnamen Mapping.aar erstellt. Das .aar-Archiv enthält alle erforderlichen Komponenten eines Webservice in Form einer einzigen Datei, wodurch das Archiv einfacher auf Apache Axis2 bereitgestellt werden kann.
Es wird empfohlen, dem Archiv einen aussagekräftigen Namen zu geben, um es von anderen eventuell bereits auf den Server hochgeladenen oder in Zukunft hochgeladenen Archiven zu unterscheiden. In unserem Beispiel geben wir dem Archiv den Namen getAuthor.aar.
Schritt 3: Bereitstellen des Webservice auf Tomcat
In Schritt 3 muss nun das Archiv getAuthor.aar über die Axis2-Verwaltungsseite auf Tomcat bereitgestellt werden. Gehen Sie folgendermaßen vor:
1.Starten Sie Tomcat.
2.Öffnen Sie die Axis2-Web-Verwaltungsseite (http://localhost:8080/axis2/axis-admin/upload) und laden Sie das im vorherigen Schritt erstellte getAuthor.aar-Archiv hoch. Der Standard-Benutzername und das Standard-Passwort für die Verwaltungsseite lauten normalerweise admin bzw. axis2.
Auf der Axis2-Verwaltungsseite steht daraufhin der neue Webservice getAuthorService zur Verfügung und ist aktiv (Abbildung unten).
Schritt 4: Aufrufen des Webservice
Im letzten Schritt wird der Webservice nun aufgerufen. Um den soeben bereitgestellten Webservice aufzurufen, verwenden wir die Altova XMLSpy Enterprise Edition.
Verwendung der zuvor erstellten Request-Datei
Wenn Sie bereits eine Beispiel-Request-Datei erstellt haben (in unserem Beispiel getAuthorRequest.xml siehe Beschreibung Erstellen eines Webservice-Projekts), gehen Sie folgendermaßen vor:
1.Öffnen Sie getAuthorRequest.xml in XMLSpy. Das Element Query hat als Wert Iceland, d.h. es sollen alle isländischen Autoren und deren Book-Datensätze vom Server zurückgegeben werden. Sie können mit der Request-Datei experimentieren und für das Query-Element einen anderen Wert definieren (z.B. France).
2.Klicken Sie im Menü SOAP auf Request an Server senden.
3.Lassen Sie im Dialogfeld SOAP-Request-Einstellungen alle Standardeinstellungen unverändert und klicken Sie auf OK. XMLSpy initiiert daraufhin den Aufruf. Daraufhin wird eine Response Message mit allen relevanten Author-Datensätzen in einer neuen XML-Datei geöffnet. Nähere Informationen zur Response Message finden Sie unter Erstellen eines SOAP-Webservice-Projekts.
Erstellen einer neuen Request-Datei
Wenn Sie in XMLSpy eine neue Request-Datei erstellen möchten, gehen Sie vor, wie unten beschrieben:
1.Starten Sie XMLSpy.
2.Klicken Sie im Menü SOAP auf Neuen SOAP-Request erzeugen. Wenn Sie dazu aufgefordert werden, geben Sie den Pfad zur WSDL-Datei ein (Abbildung unten).
3.Klicken Sie auf OK. Wenn Sie aufgefordert werden, eine SOAP-Operation auszuwählen, wählen Sie getAuthor aus und bestätigen Sie die Auswahl.
4.Definieren Sie als Wert für das Element Query das gewünschte Land (z.B. UK).
5.Führen Sie die unter Verwendung der zuvor erstellten Request-Datei oben beschriebenen Schritte 2-3 durch.