9. Tracing mit TcpTunnelGui und tcpmon
Die Apache-SOAP-Distribution enthält zum Debuggen das
einfache Trace-Tool "TcpTunnelGui", welches sich
in den TCP/IP-Datenfluss zwischenschaltet und die übertragenen
Request- und Response-Texte übersichtlich anzeigt.
Außer TcpTunnelGui gibt es noch viele weitere sehr ähnliche
Tools, zum Beispiel der TCP-Monitor aus dem
Web-Services-Projekt "Axis" der Apache-Group
("org.apache.axis.utils.tcpmon" aus
"axis.jar"). Viele Trace-Tools werden nahezu
identisch benutzt wie TcpTunnelGui.
TcpTunnelGui wird mit folgender Syntax gestartet:
javaw org.apache.soap.util.net.TcpTunnelGui
<ListenPort> <TargetHost> <TargetPort>
Um den Datenfluss über das Trace-Tool zu leiten, muss
die SOAP-Anfrage an "localhost" mit der
als "<ListenPort>" übergebenen
Portnummer gesendet werden. Das Tool leitet dann weiter an
das eigentliche Ziel ("<TargetHost>"
und "<TargetPort>").
Um obiges HelloWorldClient-Beispiel
zu debuggen, müsste im Java-Sourcecode die "sServiceUrl"-Definition
geändert werden zu:
String sServiceUrl =
"https://localhost:8081/soap/servlet/rpcrouter";
Alternativ kann der SoapResultFromArray-Client
verwendet werden, dann bleibt der Sourcecode unverändert,
da die URL auf der Kommandozeile übergeben wird.
Beides demonstrieren die folgenden
Kommandozeilenbeispiele. Falls Ihr Webbrowser die mit
"java" beginnenden Zeilen auf mehrere Zeilen
umgebrochen hat: Bitte geben Sie diese als eine einzige
Kommandozeile ein.
Tracen zum lokalen SOAP-Server zum oben gezeigten
Beispiel-SOAP-Service
rem Starten
des Trace-Tools: |
javaw org.apache.soap.util.net.TcpTunnelGui
8081 localhost 80 |
rem
HelloWorldClient.java mit sServiceUrl geändert zu
...localhost:8081...: |
java
soaptest/client/HelloWorldClient8081 MeinName |
rem
SoapResultFromArray ohne Trace-Tool: |
java SoapResultFromArray https://localhost/soap/servlet/rpcrouter
urn:helloworld getMessage sInput MeinName |
rem
SoapResultFromArray mit Trace-Tool: |
java SoapResultFromArray https://localhost:8081/soap/servlet/rpcrouter
urn:helloworld getMessage sInput MeinName |
Tracen zu entferntem SOAP-Server mit dem oben
gezeigten BabelFish-Client
rem Starten
des Trace-Tools: |
javaw org.apache.soap.util.net.TcpTunnelGui
8081 services.xmethods.net 80 |
rem Normaler
Aufruf ohne Trace-Tool: |
java SoapResultFromArray https://services.xmethods.net:80/perl/soaplite.cgi
urn:xmethodsBabelFish BabelFish translationmode
de_en sourcedata "Hallo Welt, Guten Tag" |
rem
Debug-Aufruf mit Trace-Tool: |
java SoapResultFromArray https://localhost:8081/perl/soaplite.cgi
urn:xmethodsBabelFish BabelFish translationmode
de_en sourcedata "Hallo Welt, Guten Tag" |
|