Axis1 Client: loggen der requests und Response

Status
Nicht offen für weitere Antworten.

boxi

Mitglied
Hallo zusammen

Ich habe aus einer WSDL Datei einen Clinet erstellt. nun hole ich mit über einen Locator einen Stub und rufe auf diesem dann eine WS-Funktion auf. Nun möchte ich local loggen was ich da übers Netz schicke... aber wie kann ich das machen?

Danke im Voraus für eure Hilfe
 

Niki

Top Contributor
Du kannst am Server den SoapMonitor installieren. Das ist ein Applet, die Installationsbeschreibung findest du sicher in den Axis Unterlagen. Du siehst dann halt am Server was der Client geschickt hat, und was der Server zurück schickt glaub ich auch.
 

boxi

Mitglied
Das sieht mir irgendwie sehr serverseitig aus! Oder nicht?

Ich bin aber auf der ClientSeite und muss das bewerkstelligen
 

boxi

Mitglied
To use the program, you should select a local port which tcpmon will monitor for incoming connections, a target host where it will forward such connections, and the port number on the target machine which should be "tunneled" to. Then click "add". You should then notice another tab appearing in the window for your new tunneled connection. Looking at that

Leider ist auch das wieder Serverseitig...
Super währe es wenn ich das ganze aus meinem eigenen JavaCode heraus machen kann und so in mein normales Log schreiben kann. Wenn ich ein externes Prog dafür verwende, habe ich zwei streams auf das selbe File offen... ich weiss nicht ob das so gut kommt.

Gibt es so eine Lösung überhaupt?
 

Niki

Top Contributor
Nein das ist nicht serverseitig. Du verbindest dich mit deinem Client nur gegen den TCPMonitor, dieser TCPMonitor leitet die Anfragen aber an den Server weiter. Du schaltest den Monitor sozusagen dazwischen. Das machst du aber auf deinem Client, und nicht am Server.
 

boxi

Mitglied
Okey, das könnte gehen...
Aber in einer Application die auf dem Server läuft empfielt sich diese Variante wohl kaum (GUI)
 

Niki

Top Contributor
Das ist richtig, da wüsste ich aber auf die schnelle auch keine Lösung. Man könnte höchstens so einen Monitor selber basteln und der schreibt die requests und response in eine eigene Datei. Kann ich mir eigentlich auch nicht so schwer vorstellen.
 

boxi

Mitglied
Also was ich bis jetzt noch gefunden habe ist
Code:
try{
	Writer w = new CharArrayWriter();
	SerializationContext ctx = new SerializationContext(w);
	ctx.setPretty(true);
	AttributesImpl a = new AttributesImpl();
	ctx.serialize(new QName("", "rootElement"), a, reqObj, null, Boolean.TRUE, Boolean.FALSE);
	logger.debug(w.toString());
}catch(IOException e){
	logger.warn("Can't log", e);
}

Aber das kann auf keinen Fall der originale Request bzw. Response sein. Nur schon weil ich hier bei ctx.serialize(new QName("", "rootElement"),... den Name des RootElements mitgeben muss. Also hier wird einfach schönes XML erstellt, ich denke aber das es sich damit leider auch schon wieder hat.

kann man das von Axis nicht ein XML (String) bekommen in dem steht, was es übertragen hat?
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben