Jak mogę wyświetlić faktyczne żądanie, które Jersey generuje i wysyła na serwer? Mam problemy z konkretną prośbą, a użytkownik, który uruchomił serwer, poprosił o wyświetlenie pełnego żądania (z nagłówkami i podobnymi).Jersey: Wydrukuj aktualne żądanie.
Odpowiedz
Jeśli jesteś po prostu za pomocą Jersey API Client, LoggingFilter (klient) filtra powinna pomóc:
Client client = Client.create();
client.addFilter(new LoggingFilter(System.out));
WebResource webResource = client.resource("http://localhost:9998/");
ClientResponse response = webResource.accept(MediaType.APPLICATION_JSON)
.get(ClientResponse.class);
W przeciwnym razie, można ponownie zalogować zarówno żądanie i odpowiedź na serwerze przy użyciu innych (filtr kontenera) LoggingFilter.
Ta metoda 'addFilter' nie istnieje w Jersey 2.x. Jak używasz tego teraz? –
JAX-RS 2.x zapewnia funkcjonalność równoważną z zastrzeżonym API klienta Jersey 1.x. Więcej szczegółów: https://jersey.java.net/documentation/latest/user-guide.html#mig-client-api –
Osoby zainteresowane dostosowywaniem danych wyjściowych dziennika mogą utworzyć własne narzędzie LoggingFilter http: // stackoverflow. com/questions/30187514/how-to-log-request-body-in-jax-rs-client – nacho4d
@ Odpowiedź ivan.cikic dotyczy Jersey 1.x. Oto jak to zrobić w Jersey 2.x:
import org.glassfish.jersey.client.ClientConfig;
import org.glassfish.jersey.filter.LoggingFilter;
import org.json.JSONException;
import org.json.JSONObject;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Form;
import javax.ws.rs.core.MediaType;
...
ClientConfig config = new ClientConfig();
Client client = ClientBuilder.newClient(config);
client.register(new LoggingFilter());
To nie ma znaczenia, ale ja po prostu mieć narzekać: Nowy LoggingFilter
jest naprawdę irytujące, ponieważ zmusza do korzystania Java Util Logging. Byłoby lepiej, gdyby dał mi kontrolę nad loggerem. Wygląda jak krok wstecz w projektowaniu.
Wiem, że to stara odpowiedź, ale mam pytanie - czy wiesz, jak zmusić rejestratora do drukowania WSZYSTKICH informacje zawarte we wniosku? W szczególności pliki cookie. Użyłem konstruktora 'LoggingFilter (Logger Logger, boolean PrintEntity)', ale nawet to nie wypisze plików cookie. – bkaiser
LoggingFilter jest teraz przestarzałe. Powinieneś użyć odpowiedzi Martina na LoggingFeature. Umożliwia to również wyliczenie szczegółowości w celu wydrukowania różnej ilości szczegółów. Powinien wydrukować nagłówki, które powinny zawierać pliki cookie. –
Od Jersey 2.23, można użyć LoggingFeature
. Oto nieco uproszczony przykład, pamiętaj, że możesz również zarejestrować tę funkcję na WebTarget
.
Logger logger = Logger.getLogger(getClass().getName());
Feature feature = new LoggingFeature(logger, Level.INFO, null, null);
Client client = ClientBuilder.newBuilder()
.register(feature)
.build();
Response response = client.target("https://www.google.com")
.queryParam("q", "Hello, World!")
.request().get();
JavaDoc z LoggingFeature
mówi, że wniosek "i/lub" odpowiedź jest zalogowany lol. Na moim komputerze oba są logowane.
- 1. Wydrukuj żądanie HTTP w Pythonie Django
- 2. Jersey CORS działa na żądanie GET, ale nie POST
- 3. Czy żądanie GET z Jersey może zwrócić obiekt polimorficzny?
- 4. Python przekonwertować długo aktualne
- 5. Zadanie jest zawsze aktualne
- 6. uzyskać aktualne ograniczenia latlng?
- 7. Wydrukuj do pliku XPS, a następnie wydrukuj go na drukarce.
- 8. Uzyskaj aktualne wykorzystanie pamięci WKWebView?
- 9. konwertować DateString Java aktualne javascript
- 10. mechanizacji jak uzyskać aktualne url
- 11. wydrukuj przyczynę niepowodzenia segmentacji
- 12. Wydrukuj ślad stosu wyjątku
- 13. lsof wydrukuj numeryczne porty
- 14. Wydrukuj drzewo wyników pyparsingu
- 15. Wydrukuj pustą linię?
- 16. Wydrukuj wartości postów
- 17. prolog - wydrukuj wartość zmiennej
- 18. Wydrukuj mapę w LeafletJS
- 19. Jersey @Context zakres
- 20. bison/flex: wydrukuj błędną linię
- 21. wydrukuj resztę pól w awk
- 22. Ładnie wydrukuj macierz w matematyce
- 23. Wydrukuj zawartość DIV przez JQuery
- 24. Wydrukuj określoną część strony internetowej
- 25. Wydrukuj nazwę zmiennej target-C
- 26. cmake, wydrukuj komendy kompilacji/linku
- 27. Wydrukuj hierarchię wyjątków/błędów Pythona
- 28. Wydrukuj mapę z własną warstwą
- 29. Wydrukuj dyktat posortowany według wartości
- 30. Wydrukuj konfigurację Grunt.js podczas kompilacji
do logowania na stronie serwera zobaczyć następujący wpis: [Jak dostać logi jersey na serwerze?] [1] [1]: https://stackoverflow.com/questions/2332515/how-to-get-jersey-logs-at-server – eeezyy