So verfolgen Sie SOAP-Anforderungen, die von webServiceTemplate gesendet werden

8

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

%Vor%

Gibt es eine Möglichkeit, das Problem mit TCP / IP zu lösen oder alternative Software zu finden?

    
Jack 25.08.2015, 10:53
quelle

4 Antworten

4

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

aktivieren
  • 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:

%Vor%

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.

    
Adam Michalik 13.09.2015 07:29
quelle
4

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 -

  1. Downloade und starte fiddler.
  2. Fügen Sie folgende VM-Optionen in den Eclipse-Einstellungen hinzu

    DproxySet=true -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888

  3. 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");

  4. 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.

    
eXc 16.09.2015 20:07
quelle
2

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

    
Salman 14.09.2015 05:45
quelle
1

Sie können wireshark mit aktiviertem Loopback verwenden und http als Filter hinzufügen. Welches Ihrem Zweck dienen wird

    
Abhay Pore 18.09.2015 15:25
quelle

Tags und Links