Ich schreibe einen REST-Client mit Jersey mit aktiviertem JacksonFeature für einen Webservice, der mich zwingt, seinen benutzerdefinierten Inhaltstyp anzugeben, obwohl es nur normaler JSON ist. Mit anderen Worten, wenn ich das tue:
%Vor%Der Dienst beschwert sich darüber, dass ich einen ungültigen Inhaltstyp verwende. Ich kann das umgehen, indem ich an Stelle der MediaType.APPLICATION_JSON-Konstante ihren eigenen benannten Medientyp festlege:
%Vor%Aber wenn ich das tue, bekomme ich:
%Vor%Gibt es eine Möglichkeit, dass ich Jersey diesen benutzerdefinierten Medientypnamen so behandeln kann, als ob es normaler JSON wäre, ohne einen angepassten MessageBodyWriter zu schreiben?
Ich denke, Sie könnten beide dies (JAX-RS Entity Providers) und dies (benutze Jackson mit Jersey) , um zu erreichen, was du willst. Kurz gesagt, registrieren Sie MessageBodyWriter
mit @Produces("application/vnd.stupidNameThatReallyIsJustJSON+json")
annotiert und delegieren Sie das Marshalling / Unmarshalling in der Implementierung einfach an Jackson.
BEARBEITEN: Versuchen Sie etwas mit
%Vor%Offensichtlich ist dies nur ein Ausgangspunkt, kein funktionierendes Beispiel, aber es sollte Ihnen genug Informationen geben, um zu beginnen. Denken Sie auch daran, dass Sie die Klasse für Jersey registrieren müssen, damit sie es verwenden kann.
Tags und Links java json jersey web-services jersey-client