Mapper für ressourcenbezogene Ausnahmen und Fehler
JAX-RS-Anwendungen (Java™ API for RESTful Web Services) können Ausnahmen und Fehler erzeugen. Standardmäßig werden die Ausnahmebehandlungsfunktionen des Anwendungscontainers, wie z. B. die JSP-Fehlerseiten (JavaServer Pages), verwendet. Sie können die Fehlerbehandlung anpassen und spezifische Antworten zurücksenden, wenn eine Ausnahme eintritt oder ein Fehler auftritt.
Informationen zu diesem Vorgang
JAX-RS-Ressourcenmethoden können, wie jede Java-Methode, geprüfte und ungeprüfte Ausnahmen auslösen. Standardmäßig tritt eine ungeprüfte Laufzeitausnahmebedingung im Container erneut auf. Eine geprüfte Ausnahme wird für Ressourcen, die im Web-Container ausgeführt werden, in eine ServletException eingeschlossen. Daher kann ein Entwickler Fehlerbehandlungstools, wie z. B. JSP-Fehlerseiten, verwenden, um Ausnahmen, die von einer JAX-RS-Anwendung ausgelöst werden, zu verarbeiten.
JAX-RS hat die Ausnahme javax.ws.rs.WebApplicationException eingeführt. Ein Entwickler kann beim Erstellen einer WebApplicationException einen bestimmten Fehlerklassennamen oder ein Objekt vom Typ javax.ws.rs.core.Response angeben. Wenn die Ausnahme WebApplicationException ausgelöst wird, werden die in der Ausnahme über einen Statusklassennamen oder ein Antwortobjekt eingeschlossenen Informationen verwendet, um eine Antwort zu serialisieren.
Wenn Sie die Ausnahme WebApplicationException in Ihrem Code nicht auslösen und die Fehlerbehandlungstools im Web-Container nicht verwenden können, jedoch eine angepasste Fehlerantwort verwenden möchten, können Sie eine angepasste JAX-RS-Klasse vom Typ javax.ws.rs.ext.ExceptionMapper erstellen, um Ausnahmen HTTP-Fehlerantworten zuzuordnen.
Die folgende Vorgehensweise veranschaulicht, wie eine angepasste Klasse vom Typ ExceptionMapper geschrieben werden muss.
Vorgehensweise
Ergebnisse
Sie haben einen angepassten ExceptionMapper für die Behandlung von Ausnahmen in Ihrer JAX-RS-Webanwendung erstellt.