[JAVA] Protokollieren Sie unsichtbare Ausnahmen in Jersey

Einführung

Wenn in Jersey ein interner Fehler auftritt, erhalten Sie eine Antwort mit einer Fehlermeldung im Status 500. Manchmal war das Problem jedoch

500 können mit diesem Verhalten zurückgegeben werden, und es kann schwierig sein, damit umzugehen (ich selbst war ebenfalls beunruhigt).

jersey-500-internal-error.png

Als Abhilfe in einem solchen Fall werde ich eine Methode einführen, um die in Jersey aufgetretene Ausnahme zu erfassen und die Informationen an das Protokoll zu senden.

Code

Richten Sie einen Ereignis-Listener ein, um Informationen zu Ausnahmen auszugeben, die während der Anforderungs- / Antwortverarbeitung im Protokoll aufgetreten sind.

Bereiten Sie insbesondere die folgenden "MyApplicationEventListener" und "MyRequestEventListener" vor und registrieren Sie "MyApplicationEventListener" in der Anwendung.

import org.glassfish.jersey.server.monitoring.ApplicationEvent;
import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
import org.glassfish.jersey.server.monitoring.RequestEvent;
import org.glassfish.jersey.server.monitoring.RequestEventListener;

public class MyApplicationEventListener implements ApplicationEventListener {

    @Override
    public void onEvent(ApplicationEvent event) {
    }

    @Override
    public RequestEventListener onRequest(RequestEvent event) {
        return new MyRequestEventListener();
    }
}
import java.util.logging.Logger;

import org.glassfish.jersey.server.monitoring.RequestEvent;
import org.glassfish.jersey.server.monitoring.RequestEventListener;

public class MyRequestEventListener implements RequestEventListener {
    
    private static final Logger LOGGER = Logger.getLogger(MyRequestEventListener.class.getName());

    @Override
    public void onEvent(RequestEvent event) {
        switch (event.getType()) {
        case ON_EXCEPTION:
            LOGGER.severe(event.getException().toString());
        }
    }
}

Dies sollte die Informationen der aufgetretenen Ausnahme und den Stack-Trace protokollieren.

Referenzmaterial

Recommended Posts

Protokollieren Sie unsichtbare Ausnahmen in Jersey
Ausnahmen im AWS SDK
Protokollausgabe in Datei in Java
Fangen Sie mehrere Ausnahmen zusammen in Java
Arten von Ausnahmen in Geschäftssystemen