2015-08-25 15 views
8

Wiem, że możliwe jest wykorzystanie monitorowania Eclipse TCP/IP do śledzenia komunikatów SOAP. Próbowałem, ale nie jest w stanie monitorować mojego hosta lokalnego. Protokół TCP/IP nie wyświetla hosta lokalnego w konsoli.Jak śledzić żądania SOAP, które są wysyłane przez webServiceTemplate

mogę uzyskać dostęp do aplikacji poprzez http://localhost:8080/MyApp/ w konfiguracji TCP/IP mam następujący

Local monitoring port 9090 (a random port that I have chosen) 
Host name: localhost 
Port: 8080 
Type: TCP/IP 
Timeout:0 

Czy istnieje jakiś sposób, aby rozwiązać problem z TCP/IP lub znaleźć żadnego alternatywnego oprogramowania?

+1

ustawianie rejestrowania poziomu śledzenia dla 'org.springframework.ws.client.MessageTracing'. –

+0

Poszedłbym z Wireshark, ponieważ jest to absolutnie niesamowite narzędzie do debugowania SOAP. Przechwytywanie pakietów, wpisz 'http' w polu filtru, aby wyświetlić tylko żądania/odpowiedzi HTTP (możesz określić src lub dst i zillion opcji) - kliknij prawym przyciskiem myszy pozycję listy ->" Obserwuj strumień TCP ". Lub użyj jednej z wtyczek. –

Odpowiedz

4

Być może zamiast korzystania z monitorowania Eclipse TCP/IP wolisz włączyć wbudowaną rejestrację Spring? W takim przypadku można włączyć rejestrowanie na poziomie DEBUG lub TRACE dla

  • org.springframework.ws.client.MessageTracing, jeśli chcesz, aby zalogować się na stronie klienta
  • org.springframework.ws.server.MessageTracing jeśli chcesz zalogować się na poziomie serwera

dniu poziom DEBUG, tylko element główny ładunku jest rejestrowany; na poziomie TRACE całą zawartość wiadomości. Zobacz: Spring documentation, aby uzyskać szczegółowe informacje i próbkę konfiguracji Log4J. Możliwe jest skonfigurowanie PayloadLoggingInterceptor lub SoapEnvelopeLoggingInterceptor. W beans.xml można to zrobić tak:

<sws:interceptors> 
    <bean class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor"/> 
</sws:interceptors> 

Więcej na ten roztwór here (sekcja 5.5.2.1)

Należy zauważyć, że wiosna używa Commons Logging fasadę do logowania, więc trzeba rzeczywiste ramy do rejestrowania zobacz dzienniki, np. Log4J.

2

Jest możliwe zalogowanie wiadomość SOAP od strony klienta, umożliwiając następujące właściwości systemowe:

System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true"); 
System.setProperty("com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump", "true"); 
System.setProperty("com.sun.xml.ws.transport.http.HttpAdapter.dump", "true"); 
System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dump", "true"); 

referencyjny:

Tracing XML request/responses with JAX-WS when error occurs

4

EDIT: Wireshark jest jednym z najbardziej kompleksowych programów za to (ale jest to trochę zaangażowane)

Użyłem, Skrzypek i Charlesproxy, do tego samego - Sieć Svcs, Rest, SOAP (po nieudanym uruchomieniu narzędzi Eclipse). Oba są znacznie lepsze od zaćmienia i bardzo łatwe w użyciu.

Oto sposób konfiguracji fiddler-

  1. Pobierz i uruchom Skrzypek.
  2. dodawania następujących opcji VM w Eclipse preferencji

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

  3. Opcjonalnie można również skonfigurować programowo

    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. Ponownie uruchom aplikację. (Nigdy potrzebne do ponownego uruchomienia eclipse się , ale zaćmienie, kiedyś ma własny umysł)

To jest najczęstsza i najprostsza konfiguracja, przydatna w 90% przypadków, z którymi miałem do czynienia. Uwaga: Fiddler domyślnie nasłuchuje na porcie 8888.

Istnieje dalsza konfiguracja, jeśli serwer używa SSL/certyfikatów. Oto link do pełnej wersji documentation.

Uwaga: istnieje wiele treści, nawet na stackoverflow w tej konfiguracji, jeśli utkniesz.

Również Charlesproxy jest również bardzo dobry, ale ja osobiście używałem skrzypka głównie do tworzenia aplikacji Webservice.

+0

Użyłem wireshark, ale byłem przytłoczony liczbą wiadomości HTTP, które pokazał. – Jack

+0

Wiem, dlatego nie polecam tego jako pierwszego wyboru. Ale jest niezwykle potężny, a gdy już to zrozumiesz, prawdopodobnie nie potrzebujesz żadnego innego narzędzia. Czy próbowałeś już skrzypka? – eXc

1

Możesz użyć wireshark z włączoną pętlą zwrotną i dodać http jako filtr. Który będzie służyć Twojemu celowi

Powiązane problemy