Jak uzyskać Jersey 2.2 (JAX-RS), aby wygenerować dane wyjściowe dziennika, w tym jednostki żądania Json

Używam serwletu Jersey 2.2 wewnątrz Jetty 9.0.4 w celu obsługi żądań REST.

Przede wszystkim wszystko jest dobre, a prośby podawane, ale nigdy nie widziałemKAŻDY dziennik z klas Jersey. I nie mogę znaleźć żadnego dokumentu wskazującego na to, jakie kurczęta muszę poświęcić, aby stało się to z Jersey 2.2

Moje pierwsze pytanie brzmi - co muszę zrobić, aby Jersey wygenerował jakiś dziennik.

Gdy żądanie działa niepoprawnie (np. Ponieważ nie można przeanalizować treści żądania Json), Jersey wyśle ​​wyjątek ContainerException z komunikatem „Nie można deserializować instancji java.util.ArrayList z tokena START_OBJECT” itd. byćnaprawdę pięknie, że zalogowałem ciało przychodzącego żądania, abym mógł sprawdzić Jsona. Znowu nie mogę znaleźć niczego w aktualnym dokumencie opisującym taką bestię, chociaż jestem pewien, że istnieje. I tak czy inaczej, dopóki nie rozwiążę pytania 1 powyżej, nie jest to możliwe.

Moje drugie pytanie brzmi: jak zarejestrować treść żądania przychodzącego (bez zakłócania żądania).

Konfiguracja Jersey Servlet w pliku web.xml wygląda następująco:

<servlet >
    <servlet-name>Jersey Servlet</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>au.com.xandar.wirelesstiming.recorder.web.rest.JerseyApplication</param-value>
    </init-param>
    <init-param>
        <param-name>jersey.config.server.provider.classnames</param-name>
        <param-value>org.glassfish.jersey.filter.LoggingFilter</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

Moja aplikacja Jersey:

public final class JerseyApplication extends ResourceConfig {

    public JerseyApplication() {
        super(
            //JacksonFeature.class   // Switching on Jackson
            // (My) JerseyLoggingFilter.class       // Log requests using Jersey ContainerRequestFilter 
            MyApplicationEventListener.class        // Log Requests using Jersey RequestEventListener
        );
        packages("au.com.xandar.wirelesstiming.recorder");

        // Enable LoggingFilter & output entity.
        // NB This does NOT generate any log.
        registerInstances(new LoggingFilter(Logger.getLogger(JerseyApplication.class.getName()), true));
    }
}

questionAnswers(1)

yourAnswerToTheQuestion