Ich weiß, dass es möglich ist, Eclipse TCP / IP-Überwachung zu verwenden, um SOAP-Nachrichten zu verfolgen. Ich habe das versucht, aber es ist nicht in der Lage, meinen localhost zu überwachen. TCP / IP zeigt den localhost in seiner Konsole nicht an.
Ich kann über http://localhost:8080/MyApp/
auf die Anwendung zugreifen.
In der TCP / IP-Konfiguration habe ich folgende
Gibt es eine Möglichkeit, das Problem mit TCP / IP zu lösen oder alternative Software zu finden?
Vielleicht möchten Sie anstelle der Eclipse-TCP / IP-Überwachung die integrierte Spring-Protokollierung aktivieren? In diesem Fall können Sie die Protokollierung für DEBUG
oder TRACE
für
org.springframework.ws.client.MessageTracing
, wenn Sie sich auf der Client-Seite anmelden möchten org.springframework.ws.server.MessageTracing
, wenn Sie sich auf Serverebene anmelden möchten Auf der Ebene DEBUG
wird nur das Payload-Root-Element protokolliert. auf der Ebene TRACE
der gesamte Nachrichteninhalt. Einzelheiten finden Sie in der Spring-Dokumentation und in einem Log4J-Konfigurationsbeispiel.
Alternativ können Sie eine PayloadLoggingInterceptor
oder SoapEnvelopeLoggingInterceptor
konfigurieren. In beans.xml
kannst du das so machen:
Mehr zu dieser Lösung hier (Abschnitt 5.5.2.1)
Beachten Sie, dass Spring die Commons-Logging-Fassade für die Protokollierung verwendet. Sie benötigen also ein Protokollierungs-Framework, um die Protokolle anzuzeigen, z. Log4J.
EDIT: Wireshark ist eine der umfassendsten Software hierfür (aber es ist ein wenig beteiligt)
Ich habe verwendet, Fiddler und Charlesproxy, für die gleichen - WebSvcs, Rest, SOAP (nachdem sie kläglich in Eclipse-Tools gescheitert). Beide sind der Eklipse überlegen und sehr einfach zu bedienen.
Hier ist die Art und Weise, wie Sie fiddler einrichten -
Fügen Sie folgende VM-Optionen in den Eclipse-Einstellungen hinzu
DproxySet=true -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888
Optional können Sie auch programmatisch
einrichten System.setProperty("http.proxyHost", "127.0.0.1");
System.setProperty("https.proxyHost", "127.0.0.1");
System.setProperty("http.proxyPort", "8888");
System.setProperty("https.proxyPort", "8888");
Starten Sie Ihre Anwendung neu (ich brauchte Eclipse nie neu zu starten, aber Eclipse hat irgendwann einen eigenen Sinn)
Das ist es, das ist das gebräuchlichste und grundlegende Setup, nützlich für 90% der Fälle, mit denen ich mich beschäftigt habe. Hinweis: Fiddler überwacht standardmäßig den Port 8888.
Es gibt weitere Einstellungen, wenn Ihr Server SSL / Zertifikate verwendet. Hier ist der Link zur vollständigen Dokumentation .
Hinweis: Es gibt viel Inhalt, selbst bei stackoverflow bei diesen Einstellungen, falls Sie nicht weiterkommen.
Auch Charlesproxy ist wirklich gut, aber ich habe fiddler hauptsächlich für die Webservice-Client-Entwicklung benutzt.
Es ist möglich, eine SOAP-Nachricht von der Clientseite aus zu protokollieren, indem Sie die folgenden Systemeigenschaften aktivieren:
%Vor%Referenz:
Verfolgen von XML-Anfragen / -Antworten mit JAX-WS wenn ein Fehler auftritt
Sie können wireshark mit aktiviertem Loopback verwenden und http als Filter hinzufügen. Welches Ihrem Zweck dienen wird