[java] Wie man Jersey-Protokolle am Server erhält?



Answers

Jersey 2 hat LoggingFilter veraltet und Sie müssen jetzt LoggingFeature . Um es mit einem Client zu verwenden, können Sie die folgende Snipette verwenden:

this.client = ClientBuilder
            .newBuilder()
            .property(LoggingFeature.LOGGING_FEATURE_VERBOSITY_CLIENT, LoggingFeature.Verbosity.PAYLOAD_ANY)
            .property(LoggingFeature.LOGGING_FEATURE_LOGGER_LEVEL_CLIENT, "WARNING")
            .build();

und auf der Serverseite:

ResourceConfig config = new ResourceConfig(HelloWorldResource.class);
config.register(LoggingFeature.class);
Question

Ich benutze Jersey für eine REST WS. Wie aktiviere ich Jersey-Logs auf der Serverseite?

Lange Geschichte: Ich bekomme eine clientside Ausnahme - aber ich sehe nichts in Tomcat Logs [Es erreicht nicht einmal meine Methode]. Da der Stack-Trace "toReturnValue" sagt, hat er etwas vom Server bekommen. Aber ich weiß nicht, was der Server gesagt hat.

Exception in thread "main" java.lang.IllegalArgumentException: source parameter must not be null
 at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:98)
        at com.sun.xml.internal.ws.message.AbstractMessageImpl.readPayloadAsJAXB(AbstractMessageImpl.java:100)
        **at com.sun.xml.internal.ws.client.dispatch.JAXBDispatch.toReturnValue(JAXBDispatch.java:74)**
        at com.sun.xml.internal.ws.client.dispatch.DispatchImpl.doInvoke(DispatchImpl.java:191)
        at com.sun.xml.internal.ws.client.dispatch.DispatchImpl.invoke(DispatchImpl.java:195)



web.xml für Jersey 1.2 den folgenden Eintrag in web.xml innerhalb des Servlet-Tags hinzu:

    <init-param>
        <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
        <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
    </init-param>





Related



Tags

java java   jersey