Apache SOAP APACHE SOAP



Ähnliche Dokumente
L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung über den Umgang mit Schildern

Installation des GeoShop Redirector für Apache (Stand ) ================================================================

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Arbeiten mit UMLed und Delphi

Hex Datei mit Atmel Studio 6 erstellen

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Umzug der Datenbank Firebird auf MS SQL Server

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen?

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

Unsere Webapplikation erweitern

Einführung in TexMaker

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Web Services Security

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

INSTALLATION VON INSTANTRAILS 1.7

Installations Guide für YAJSW und DTLDAP

Wie halte ich Ordnung auf meiner Festplatte?

Adminer: Installationsanleitung

WordPress lokal mit Xaamp installieren

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Internet online Update (Mozilla Firefox)

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

OP-LOG

A n l e i t u n g : F i r m w a r e U p d a t e d u r c h f ü h r e n

KeePass Anleitung. 1.0Allgemeine Informationen zu Keepass. KeePass unter Windows7

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Geld Verdienen im Internet leicht gemacht

Fotostammtisch-Schaumburg

Flash Videos einbinden

Erste Schritte mit Microsoft Office 365 von Swisscom

Bkvadmin2000 Peter Kirischitz

Reporting Services und SharePoint 2010 Teil 1

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Gezielt über Folien hinweg springen

Geschrieben von: Stefan Sonntag, den 26. Juni 2011 um 09:45 Uhr - Aktualisiert Sonntag, den 26. Juni 2011 um 10:12 Uhr

Der lokale und verteilte Fall

Bauteilattribute als Sachdaten anzeigen

Wie kann ich meine Daten importieren? Wie kann ich meine Profile verwalten?

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Migration Howto. Inhaltsverzeichnis

Titel. App-V 5 Single Server Anleitung zur Installation

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

WebService in Java SE und EE

FIREBIRD BETRIEB DER SAFESCAN TA UND TA+ SOFTWARE AUF MEHR ALS EINEM COMPUTER

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Freie Karten/Maps für Garmin Qutdoor Navi, wie geht das?

Updateseite_BuV-PlugIn-NERZ-Gesamt

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Menü auf zwei Module verteilt (Joomla 3.4.0)

WCF Services in InfoPath 2010 nutzen

CodeSaver. Vorwort. Seite 1 von 6

1.3. Installation und Konfiguration von Filr Desktop

Konfigurationslanleitung für J2EE und Eclipse im KBS-Pool

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Installationsanleitungen

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Hilfe zu XR PACS ImageproWeb. Inhalt. Windows Updates. IE11 und Windows 7/8

Vertiefte Grundlagen Graphentheorie

BEDIENUNG ABADISCOVER

Visual Basic Express erstes Projekt anlegen

Gruppenrichtlinien und Softwareverteilung

ANT. Kurzvortrag von Manuel Schulze.

Schritt für Schritt Installationsanleitung -> CAS genesisworld SwissEdition

Team- Entwicklung unter Eclipse

Octave für Windows. Leichte Variante (kein Cygwin installiert)

Datei Erweiterungen Anzeigen!

How To: Wie entwickle ich mit SharpDevelop Anwendungen für die PocketPC-Platform

Legen Sie nun dieses Verzeichnis mit dem Namen "joomla" hier an: C:xampphtdocs.

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

TrueCrypt Anleitung: Datenschutz durch Festplattenverschlüsselung

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:

Voraussetzung. Anleitung. Gehen Sie auf Start Einstellungen und suchen Sie hier den Eintrag Datenverbindungen oder Verbindungen. Öffnen Sie diesen.

ICS-Addin. Benutzerhandbuch. Version: 1.0

GITS Steckbriefe Tutorial

GEONET Anleitung für Web-Autoren

INSTALLATION DES MICROSOFT SUS-SERVERS AUF WINDOWS XP PROFESSIONAL

QTTabBar Einrichtung, ein Tutorial

Installation von ilink TeamCall for Salesforce.com Office Edition

Thunderbird herunterladen, Installieren und einrichten Version (portable)

Dieses UPGRADE konvertiert Ihr HOBA-Finanzmanagement 6.2 in die neue Version 6.3. Ein UPGRADE einer DEMO-Version ist nicht möglich.

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

Schritt 1 - Registrierung und Anmeldung

Installation von Druckern auf dem ZOVAS-Notebook. 1. Der Drucker ist direkt mit dem Notebook verbunden

Magento MultiStore einrichten unter ispcp

Print2CAD 2017, 8th Generation. Netzwerkversionen

Der neue persönliche Bereich/die CommSy-Leiste

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

1 Vorraussetzungen. 2 Installiere Eclipse. FS 2015 Herausgabe: Dr. A. L. Schüpbach, D. Sidler, Z. István Departement Informatik, ETH Zurich

Website freiburg-bahai.de

1. Laptop: Benutzen Sie die Anleitung ab Seite 2 2. Tablet / Smartphone: Benutzen Sie die Anleitung ab Seite 4. Seite 2 Seite 4

Transkript:

In diesem Kapitel Um was geht s? Kurze Geschichte von Apache SOAP Zukunft von Apache SOAP Installieren von Apache SOAP Tomcat Konfiguration für Apache SOAP Classpath Deployen eines Hello World Services Der Service als Java Programm Das Start-Verzeichnis des Dienstes Deployment Descriptor Der Client Ausgaben Das SOAP Admin Tool Apache SOAP 1.1. Um was geht s? Sie wollen sich Apache SOAP kennen lernen, ohne über alle möglichen Probleme zu stolpern und ohne alle Details schon zu Beginn kennen lernen zu wollen. 1.1.1. Kurze Geschichte von Apache SOAP Apache SOAP stammt wie so viele Apache Technologien von IBM. Ursprünglich hiess Apache SOAP IBM-SOAP. Apache hat die Software überarbeitet, mithilfe von IBM. 1.1.2. Zukunft von Apache SOAP Das neuste SOAP Release von Apache heisst Axis, Es unterscheidet sich grundlegend von IBM-SOAP. Die Architektur von Axis ist vollständig neu. Axis verwendet den SAX Parser; Apache SOAP verwendet den DOM Parser. Axis ist dynamisch erweiterbar und kann Java Dateien selbständig übersetzen und einbinden. Axis ist modularer und schneller. Axis hat aber auch einige Nachteile: Release 1.0 war schlicht nicht funktionsfähig. Jetzt sieht's besser aus. Apache SOAP können aber für viele verschiedene SOAP Server verwendet werden. Apache SOAP kennt zwei Patterns: - RPC basiert: der Client sendet den Prozedurnamen und die Parameter und erwartet als Antwort ein oder mehrere Variablen. - Message basiert: diese Version ist detaillierter; SOAP RPC basiert darauf. In diesem Modell müssen Sie sich selber um (fast) alles kümmern: Umschlag, Kopf, Rumpf, einpacken, auspacken. Hier ein RPC Beispiel (als SOAP Message: diese sehen Sie aber kaum): <?xml version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope xmlns:soap- ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <SOAP-ENV:Body> <ns1:wiegehtsresponse xmlns:ns1="urn:wiegehts" SOAP- ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <return xsi:type="xsd:string">hans - Wie gehts Dir?</return> </ns1:wiegehtsresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> ApacheSOAPStarthilfe.doc 1 / 12

Der Datentyp der Rückgabe wird in XML Schema Schreibweise angegeben (xsi:type="xsd:string"). Andere SOAP Implementierungen (Microsoft zum Beispiel) liefern eine Antwort, die anschliessend interpretiert, gecastet und analysiert werden muss. In Axis können Sie einen Standard-Datentyp für Rückgabewerte angeben. Axis unterstützt auch die aktuelle Version von WSDL (Web Service Description Language): falls Sie die WSDL Beschreibung eines Dienstes benötigen, geben Sie einfach "<Dienst>?WSDL" ein. Dann wird die WSDL Beschreibung generiert. Beispiel: http://localhost:8080/axis/services/helloworld?wsdl. Zudem enthält Axis ein WSDL to- Java Tool: damit können Stubs generiert werden, so dass der Methodenaufruf wie ein lokaler Aufruf aussieht (...CORBA / RMI Style...). Sie finden mehr Details über Axis in der Starthilfe zu Axis und den Links dazu. 1.2. Installieren von Apache SOAP Apache SOAP ist Open Source, kann also problemlos herunter geladen und genutzt werden. Bevor Sie SOAP nutzen können, müssen Sie einen Web Server, idealerweise mit einem Servlet Container, beispielsweise Apache Tomcat aus dem Apache Jakarta Projekt installieren. Wie dies geschieht, steht in der "Starthilfe zu Tomcat". Eigentlich gibt's da nicht viel zu tun: - herunterladen - entzippen - starten - stoppen evtl. Konfiguration anpassen und neu starten Nun können Sie SOAP herunterladen ( http://xml.apache.org/soap ). Entzppen Sie das ZIP Archiv, einfach in C: (C:\soap-2_2 wird angelegt). Zudem sollten Sie die Umgebungsvariable SOAP_HOME setzen: SET SOAP_HOME=C:\soap-2_2 Beachten Sie: Apache SOAP benötigt mail.jar aus JavaMail, jaf.jar aus Java Activation Framework und xerces,jar aus dem Xerces Apache Projekt, neben Apache SOAP soap.jar. ApacheSOAPStarthilfe.doc 2 / 12

1.3. Tomcat Konfiguration für Apache SOAP Sie haben zwei Möglichkeiten, Apache Tomcat für SOAP zu konfigurieren, SOAP fähig zu machen (Achtung: die Installationsanleitung in der Doc zu Apache SOAP ist fehlerhaft. Eine korrigierte Version finden Sie unter [alles auf einer Zeile] http://cvs.apache.org/viewcvs.cgi/*checkout*/xmlsoap/java/docs/install/tomcat.html?rev=head&content-type=text/html ): CATALINA_HOME ist bei mir CATALINA_HOME=C:\jakarta-tomcat-4.1.27 Variante 1: mithilfe des SOAP Web Archives 1. Im Archiv SOAP_HOME finden Sie im Verzeichnis %SOAP_HOME%\webapps ein sogenanntes Web Archiv: soap.war. 2. kopieren Sie dieses Archiv ins Verzeichnis %CATALINA_HOME%\webapps 3. kopieren Sie die folgenden Archive ins %CATALINA_HOME%\common\lib Verzeichnis: aus JavaMail: mail.jar aus Java Activation Framework (JAF) : activation.jar aus Apache Xerces : Xerces.jar oder (je nach Version) die jar's den Donwloads. 4. starten Sie Tomcat neu. Sie haben SOAP installiert! 5. testen Sie SOAP: http://localhost:8080/soap Variante 2: mithilfe eines Verweise aus dem server.xml auf SOAP: 1. erweitern Sie Startup.bat im Verzeichnis %CATALINE_HOME%\bin (Tomcat). Ich habe folgende Zeile eingefügt (zeimlich am Anfang): call %SOAP_HOME%\soap_path.bat 2. server.xml auf SOAP verweisen lassen. Kreieren Sie einen neuen Context : <Context path="/soap" docbase="path-to-apache-soap/webapps/soap.war" debug="1" reloadable="true" /> 3. SOAP Archive: Hier haben Sie zwei Möglichkeiten 1) kopieren Sie das soap.jar Archiv ins Verzeichnis %CATALINA_HOME%/classes oder %CATALINA_HOME%/lib, ODER 2) a) entzippen Sie das WAR Archiv im SOAP_HOME\webapps Verzeichnis ins SOAP_HOME\webapps\soap. 2 b) Kreieren Sie den Context im server.xml im %CATALINE_HOOME%\conf Verzeichnis: <Context path="/soap" docbase="path-to-apache-soap/webapps/soap" debug="1" reloadable="true" /> 2 c) kopieren Sie die Java Archive in %CATALINA_HOME%/classes oder %CATALINA_HOME%/lib, oder %SOAP_HOME%/webapps/soap/WEB-INF Die zweite Variante klingt komplexer. Sie wird von Eclipse, dem Tomcat Plugin, eingesetzt. Für erste Versuche können Sie ja mit der Variante 1 arbeiten. Im ZIP finden Sie alles für Variante 1 und 2. Testen Sie Ihre Installation: 1. http://localhost:8080/soap 2. http://hostname:port/soap/servlet/rpcrouter ApacheSOAPStarthilfe.doc 3 / 12

1.4. CLASSPATH Definition Sie wollen sicher nicht nur die Standardseite von SOAP auf Ihrem Bildschirm sehen sondern eigene Applikationen mit SOAP entwickeln. Damit dies problemlos funktioniert, müssen Sie den CLASSPATH für javac bzw. java setzen. Falls Sie wie oben ein soap_path.bat definieren wollen, hier ist meines: @echo off Rem SOAP Pfad : SOAP_HOME ist bereits als Umgebungsvariable definiert set SOAP_HOME=C:\soap-2_3_1 set JAVA_MAIL=C:\javamail-1.3.1 set JAVA_ACTIVATION=C:\jaf-1.0.2 set XERCES_HOME=C:\xerces-2_5_0 set CLASSPATH="" Rem SOAP set CLASSPATH=%CLASSPATH%;%SOAP_HOME%\lib\;%SOAP_HOME%\lib\soap.jar Rem JAVA Mail : nur mail.jar ist nötig, ausser Sie wollen SOAP über SMTP nutzen set CLASSPATH=%CLASSPATH%;%JAVA_MAIL%\;%JAVA_MAIL%\mail.jar;%JAVA_MAIL%\lib\ima p.jar;%java_mail%\lib\mailapi.jar;%java_mail%\lib\pop3.jar;%java_mail%\lib\ smtp.jar Rem JAVA Activation set CLASSPATH=%CLASSPATH%;%JAVA_ACTIVATION%\activation.jar Rem Apache Xerces : nur Xerces.jar ist nötig, ausser Sie wollen die Beispiele... nutzen set CLASSPATH=%CLASSPATH%;%XERCES_HOME%\;%XERCES_HOME%\xercesImpl.jar;%XERCES_H OME%\xercesSamples.jar;%XERCES_HOME%\xmlapis.jar;%XERCES_HOME%\xmlParserAPIs.jar Wie Sie sehen, und weiter oben bereits lesen konnten, benötigt SOAP: %SOAP_HOME%\lib\soap.jar : aus http://ws.apache.org/soap/ %TOMCAT_HOME%\common\lib\xerces.jar : aus http://xml.apache.org/xerces2-j/ %TOMCAT_HOME%\common\lib\mail.jar aus http://java.sun.com/products/javamail/ %TOMCAT_HOME%\common\lib\activation.jar aus http://java.sun.com/products/javabeans/glasgow/jaf.html Da ich die einzelnen Komponenten bereits sonst benötigt habe, ist mein Classpath etwas umfangreicher (ich benutze JavaMail, das Java Activation Framework und Xerces unabhängig von Tomcat). ApacheSOAPStarthilfe.doc 4 / 12

1.5. Deploying und Nutzen eines "Hello World" Service Nun sollte Ihre SOAP Installation funktionsfähig sein. Falls Sie einen Fehler festgestellt haben: - falls eine Klasse nicht gefunden wurde, liegt's am Pfad - falls Tomcat nichts findet, haben Sie evtl. die soap,... Archive nicht ins richtige Verzeichnis kopiert. Sie müssen in der Lage sein, über http://localhost:8080/soap auf die SOAP Seite zuzugreifen: Hello! Welcome to Apache-SOAP. What do you want to do today? Run the admin client Visit the SOAP RPC router URL for this SOAP server Testen Sie beide (Run ->List und Visit). Falls ein Stack Dump erscheint, dann kann evtl eines der Archive nicht gefunden werden, oder diese passen nicht zusammen (laden Sie die neusten Jar's runter, verwenden Sie nicht irgend ein mail.jar oder xerces.jar aus dem Jakarta Verzeichnis oder von sonstwo. Xerces.jar finden Sie in der neusten xerces Version nicht mehr! J2SDK verwendet eine alte, fehlerhafte Version von Xerces. Wo Sie die Archive hinkopieren (und Tomcat neu starten) sollten, steht im vorherigen Abschnitt. Falls alles klappt, wollen wir nun SOAP endlich nutzen. Web Services / SOAP Services können Sie auf zwei Arten allgemein bekannt machen: 1) mit einem Apache SOAP Kommandozeilen Hilfsprogramm 2) über das Admin Tool.(Web basiert) Zuerst brauchen wir aber ein HelloWorld.java. 1.5.1. WieGehts.java Ein einfacher Text Service Das ist nichts neues: package apachesoap; public class WieGehtsService { public String wiegehts(java.lang.string name) { return name+" - Wie gehts Dir?"; } } Die Methode der Klasse WieGehtsService heisst also wiegehts. ApacheSOAPStarthilfe.doc 5 / 12

1.5.2. Klassen ind WEB-INF Verzeichnis kopieren Nun wollen wir sehen, wie diese Methode über Apache SOAP genutzt werden kann. Dazu muss diese Klasse dem Apache SOAP Laufzeitsystem innerhalb Tomcat bekannt sein. Auch hier haben Sie mehrere Möglichkeiten: 1. a) kreieren Sie ein Java Archiv HelloWorld.jar mit der Class Datei zu obigem Programm. b) kopieren Sie dieses Jar in das Verzeichnis %CATALINA_HOME%\common\lib 2. a) Ohne Jar: kopieren Sie einfach die Class Dateien ins (neu zu erstellende) Verzeichnis %CATALINA_HOME%\webapps\soap\WEB-INF\classes\apachesoap 1.5.3. Deployen via Kommandozeile Apache SOAP benötigt einen "Deployment Descriptor", um auf den Dienst zugreifen zu können. Deployen kann man entweder mithilfe eines XML Deployment Decriptors, oder mithilfe des SOAP Admin Tools über den Browser. Aus das Web Tool kommen wir noch zurück. 1.5.3.1. Deployment Descriptoren Im Deployment Descriptor wird der Dienst genauer beschrieben. Es handelt sich um eine XML Datei. Sie wird bei EJB's,... eingesetzt. Es lohnt sich also etwas genauer hinzusehen (siehe weiter hinten). Im Moment wollen Sie sicher einfach endlich das Hello World Programm starten und nutzen. Deswegen kommen wir erst weiter hinten auf die Details zurück. In unserem Beispiel sieht die Datei folgendermassen aus (HelloWorldDD.xml): <?xml version="1.0"?> <isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment" id="urn:wiegehts"> <isd:provider type="java" scope="application" methods="wiegehts"> <isd:java class="apachesoap.wiegehtsservice"/> </isd:provider> <isd:faultlistener>org.apache.soap.server.domfaultlistener</isd:faultlistener> </isd:service> 1.5.3.2. Registrieren des Service Apache SOAP verfügt über ein Hilfsprogramm, um Dienste registrieren zu können: org.apache.soap.server.servicemanagerclient Der Aufruf zum Registrieren des Hello World (als Batch im ZIP) @echo off if "%JAVA_HOME%" == "" goto homeless call %SOAP_HOME%\soap_path.bat %JAVA_HOME%\bin\java org.apache.soap.server.servicemanagerclient http://localhost:8080/soap/servlet/rpcrouter deploy WieGehts.xml goto ende :homeless @echo Sie muessen JAVA_HOME als Umgebungsvariable definieren @echo Zum Beispiel : Set JAVA_HOME=C:\J2SDK1.4.2 goto ende :ende pause ApacheSOAPStarthilfe.doc 6 / 12

Der erste Parameter beschreibt die URL des Apache SOAP RPC Routers. Dieser muss Anfragen an den passenden Dienst weiterleiten: http://localhost:8080/soap/servlet/rpcrouter Der zweite Parameter gibt an, was zu passieren hat: deploy. Der dritte Parameter ist unsere Deployment Beschreibung; WieGehts.xml Das Ergebnis können Sie im Browser unter : http://localhost:8080/soap/admin/index.html anschauen. Der Service müsste nun eigenlich aufgelistet werden! Das selbe können wir auch auf der Kommandozeile überprüfen: %JAVA_HOME%\bin\java org.apache.soap.server.servicemanagerclient http://localhost:8080/soap/servlet/rpcrouter list Sie sollten eine Ausgabe etwa wie die folgende sehen: Deployed Services: urn:wiegehts Nun löschen / undeployen wir den Dienst, zum Üben: %JAVA_HOME%\bin\java org.apache.soap.server.servicemanagerclient http://localhost:8080/soap/servlet/rpcrouter undeploy "urn:wiegehts" Falls Sie Attribute des Dienstes abfragen wollen: java org.apache.soap.server.servicemanagerclient http://localhost:8080/soap/servlet/rpcrouter query " urn:wiegehts " Wenn Sie den Dienst gerade gelöscht hatten, sollten Sie ihn zuerst wieder anmelden. Die Ausgabe sollte etwa folgendermassen aussehen: <isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment" id="urn:wiegehts" checkmustunderstands="false"> <isd:provider type="java" scope="application" methods="wiegehts"> <isd:java class="apachesoap.wiegehtsservice" static="false"/> </isd:provider> <isd:faultlistener>org.apache.soap.server.domfaultlistener</isd:faultlistener> </isd:service> Wir haben unseren Deployment Descriptor wieder! 1.5.3.2.1. Authorisierung Diese Anleitung folgt später, weil die ersten Tests schief gingen! ApacheSOAPStarthilfe.doc 7 / 12

1.5.4. Der Client Der Aufbau eines Clients ist ziemlich stur, gemäss Apache SOAP Dokumentation. package apachesoap; import java.io.*; import java.net.*; import java.util.*; import org.apache.soap.*; import org.apache.soap.rpc.*; public class WieGehtsClient { public static void main(string[] args) throws Exception { String strurl=args[0]; System.out.println("[WieGehtsClient]URL: "+strurl); URL url = new URL (strurl); //"http://localhost:8080/soap/servlet/rpcrouter"); } } // Call Aufbau. Call call = new Call(); call.settargetobjecturi("urn:wiegehts"); call.setmethodname("wiegehts"); call.setencodingstyleuri(constants.ns_uri_soap_enc); // Parameter Vector params = new Vector(); String name="hans"; params.addelement(new Parameter("name", String.class, name, null)); call.setparams (params); // Antwort Response resp = call.invoke(url, "" ); // Antwort Analyse. if ( resp.generatedfault() ) { Fault fault = resp.getfault (); System.out.println("Fehlerhafter Call: "); System.out.println("Fault Code = " + fault.getfaultcode()); System.out.println("Fault String = " + fault.getfaultstring()); } else { Parameter result = resp.getreturnvalue(); System.out.println(result.getValue()); } ApacheSOAPStarthilfe.doc 8 / 12

1.5.5. Starten des Clients Damit ich mir die Ausgabe auch im Tomcat Tunnel ansehen kann, übergebe ich die URL als Parameter : Ohne Tunnel %JAVA_HOME%\bin\java -classpath.;..;%classpath%; apachesoap.wiegehtsclient http://localhost:8080/soap/servlet/rpcrouter Mit Tunnel %JAVA_HOME%\bin\java -classpath.;..;%classpath%; apachesoap.wiegehtsclient http://localhost:5555/soap/servlet/rpcrouter 1.5.5.1. Ausgaben Ohne Tunnel: [WieGehtsClient]URL: http://localhost:8080/soap/servlet/rpcrouter Hans - Wie gehts Dir? Mit Tunnel Ausgabe im JVM Fenster: Sie muessen zuerst den Tomcat_Tunnel starten (Tomcat_Tunnel.bat) Press any key to continue... [WieGehtsClient]URL: http://localhost:5555/soap/servlet/rpcrouter Hans - Wie gehts Dir? Ausgabe im linken Tunnel Fenster: POST /soap/servlet/rpcrouter HTTP/1.0 Host: localhost:5555 Content-Type: text/xml; charset=utf-8 Content-Length: 442 SOAPAction: "" <?xml version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope xmlns:soap- ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <SOAP-ENV:Body> <ns1:wiegehts xmlns:ns1="urn:wiegehts" SOAP- ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <name xsi:type="xsd:string">hans</name> </ns1:wiegehts> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Ausgabe im rechten Tunnel Fenster: HTTP/1.1 200 OK Set-Cookie: JSESSIONID=5BB1D7C0FE51C0A95A40A7CD0D8A5E46; Path=/soap Content-Type: text/xml; charset=utf-8 Content-Length: 481 Date: Sat, 16 Aug 2003 17:28:10 GMT Server: Apache Coyote/1.0 Connection: close <?xml version='1.0' encoding='utf-8'?> <SOAP-ENV:Envelope xmlns:soap- ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <SOAP-ENV:Body> <ns1:wiegehtsresponse xmlns:ns1="urn:wiegehts" SOAP- ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <return xsi:type="xsd:string">hans - Wie gehts Dir?</return> </ns1:wiegehtsresponse> </SOAP-ENV:Body> ApacheSOAPStarthilfe.doc 9 / 12

</SOAP-ENV:Envelope> 1.6. Deployen via Web Administration Tool Anstatt auf der Kommandozeile kann man auch mit einem Web basierten Web Tool - neue Dienste zu definieren, - existierende Dienste aufzulisten - Dienste zu löschen Anstelle des Deployment Descriptors werden die Daten einfach in eine Maske eingegeben. 1.6.1.1. Das SOAP Admin Tool Unter http://localhost:8080/soap/admin/index.html sehen Sie folgende Seite:: Unter "List" sehen wir unseren "WieGehtsService" : Falls wir auf den Dienst klicken, sehen wir die Details unseres Services: ApacheSOAPStarthilfe.doc 10 / 12

Wenn Sie mutig sind (das Risiko ist gering), können Sie sich die Angaben notieren, dann den Dienst löschen und anschliessend selber deployen. Eigentlich könnten Sie jetzt selber loslassen, hoffentlich erfolgreich. Die nächsten Abschnitte gehen auf Themen wie: - Deployment Descriptor - Services mit mehreren Methoden - Gibt es Überladen einer Methode (selber Name, unterschiedliche Parameter) - Einbinden von Servlets - Datentypen und Datenkonversion - ApacheSOAPStarthilfe.doc 11 / 12

APACHE SOAP... 1 1.1. UM WAS GEHT S?... 1 1.1.1. Kurze Geschichte von Apache SOAP... 1 1.1.2. Zukunft von Apache SOAP... 1 1.2. INSTALLIEREN VON APACHE SOAP... 2 1.3. TOMCAT KONFIGURATION FÜR APACHE SOAP... 3 1.4. CLASSPATH DEFINITION... 4 1.5. DEPLOYING UND NUTZEN EINES "HELLO WORLD" SERVICE... 5 1.5.1. WieGehts.java Ein einfacher Text Service... 5 1.5.2. Klassen ind WEB-INF Verzeichnis kopieren... 6 1.5.3. Deployen via Kommandozeile... 6 1.5.3.1. Deployment Descriptoren... 6 1.5.3.2. Registrieren des Service... 6 1.5.3.2.1. Authorisierung... 7 1.5.4. Der Client... 8 1.5.5. Starten des Clients... 9 1.5.5.1. Ausgaben... 9 1.6. DEPLOYEN VIA WEB ADMINISTRATION TOOL... 10 1.6.1.1. Das SOAP Admin Tool... 10 ApacheSOAPStarthilfe.doc 12 / 12