Ich bekomme die folgende Protokollausgabe. Ich denke, Drop-Wizard versucht zu Fehler, aber die Jersey JAX-RS-Implementierung, die es verwendet, weiß nicht, wie der Fehler formatiert wird? Wie kann ich es sehen?
%Vor%FWIW Die Methodensignatur, die ich treffe, lautet:
%Vor%Sie benötigen einen Serialiszer für ErrorMessage. Wenn Sie Eclipse Strg + Umschalt + T verwenden und nach "JsonProcessingExceptionMapper" suchen. Dieser Exception-Mapper möchte eine Antwort mit der Entität ErrorMessage erstellen, aber Sie haben keinen Mapper dafür.
Sie haben zwei Möglichkeiten:
Option 1: Fügen Sie diese Methode in Ihrem run () hinzu:
%Vor%Dadurch werden alle Ausnahme-Mapper entfernt, die standardmäßig in DW hinzugefügt wurden. Jetzt können Sie alle Ausnahme-Mapper hinzufügen, die Sie wirklich wollen. In meinem Fall:
%Vor%Schreiben Sie jetzt Ihren eigenen benutzerdefinierten CustomJsonProcessingExceptionMapper ohne Entity:
%Vor%Option 2: Sie erstellen einen Serializer / einen Nachrichtentextschreiber für ErrorMessage. Versuchen Sie dazu Folgendes:
%Vor%Fügen Sie in Ihrem Lauf () hinzu:
%Vor%Hoffe das hilft: -)
Sie müssen diese Header nur für Ihre Ressource angeben, damit der Dropwizard erkennt, welcher Builder für Fehlermeldungen für die Antwort verwendet werden soll:
%Vor%Das ist doof, aber ich habe darauf geklickt, dass der Dropwizard von einer Hauptklasse ausgeführt wird, also können Sie einfach einen Breakpoint in ErrorMessage setzen und ihn innerhalb von (z. B.) Eclipse ausführen.
Übrigens war der zugrunde liegende Fehler in diesem Fall:
%Vor%Tags und Links jax-rs jersey error-handling dropwizard