Jersey nicht sehen, meine MessageBodyReader
Ich versuche, jersey mit meine eigene json-MessageBodyReader/MessageBodyWriter (da bin ich nicht die Verwendung von @XmlRootElement... Anmerkungen auf meine domain-Klassen).
@Provider
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public final class MyGsonMessageBodyHandler implements MessageBodyWriter<Object>, MessageBodyReader<Object> {
...
}
Jersey verwendet diese Klasse als messagebodywriter (wie es Stoppt bei Haltepunkt in der implementierten Methode writecontentto). Hovewer es nicht sehen diese Klasse als messagebodyreader (und selbst wenn ich die Pause bis diese Klasse die getrennte Implementierung der messagebodyreader/messagebodywriter es weigert sich immer noch, um meine messagebodyreader).
Den Test-code sieht wie folgt aus (jersey-grizzly):
final Greeting greeting = resource.path("/greeting")
.queryParam("name", name)
.accept(MediaType.APPLICATION_JSON)
.type(MediaType.APPLICATION_JSON)
.get(Greeting.class);
Die Fehler, die ich habe sieht wie folgt aus:
A message body reader for Java class test.Greeting, and Java type class test.Greeting, and MIME media type application/json was not found
Frage ich mich, welche Art von Magie benötigt für das schreiben von eigenen MessageBodyReader?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach einer Weile fand ich die Ursache des Problems. Meine Implementierung von MessageBodyReader/Writer ist OK (und ich es funktioniert mit RESTlet), aber WENN SIE JerseyTest, VERGESSEN Sie NICHT, FÜGEN Sie IHRE MessageBodyReader/Writer es ist ClientConfig:
Anders Ihrem client-code wäre nicht in der Lage zu Lesen/schreiben Ihre POJOs.
Dies ist, was ich verwende und es funktioniert (derzeit mit Jersey 1.8).
Ich bin mir nicht sicher, ob es dein Fall ist, aber der häufigste Fehler ist falsche Umsetzung der
isReadable
Methode.Hast du es umgesetzt?
Halten Sie es, beim Debuggen?
Wirkt es true zurück?
Danach versuchte Alex' Lösung, diese schließlich für mich gearbeitet: