Ich benutze Jersey, um JSON (mit POJO-Mapping durch Jackson) und Jetty (ausgehend von der Hauptmethode) zu erzeugen.
Es funktioniert für Jersey 1.x perfekt .:Die POJO-basierte JSON-Bindungsunterstützung für Jackson in Jersey 2.0 kann nicht aktiviert werden.
ServletHolder sh = new ServletHolder(ServletContainer.class);
sh.setInitParameter("com.sun.jersey.config.property.resourceConfigClass",
"com.sun.jersey.api.core.PackagesResourceConfig");
sh.setInitParameter("com.sun.jersey.config.property.packages", "service");
sh.setInitParameter("com.sun.jersey.api.json.POJOMappingFeature", "true");
...
context.addServlet(sh, "/rest/*");
Server server = new Server(8080);
server.setHandler(context);
server.start();
Jetzt wanderte ich mein Projekt nach Jersey 2.0 und gescheiterte POJO based JSON Bindung in ihm zu ermöglichen, habe ich folgendes: Offensichtlich org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class business.entity.ExampleEntity, genericType=class business.entity.ExampleEntity.
, com.sun.jersey.api.json.POJOMappingFeature
nicht mehr gültig wie Jersey geht an org.glassfish
die documentation folgendes sagen:
Um Jackson als JSON (JAXB/POJO) Provider zu verwenden, müssen Sie JacksonFeature und einen ContextResolver für ObjectMapper (falls erforderlich) in Ihrem Konfigurierbaren (Client/Server) registrieren.
Aber ich kann nicht herausfinden, wie es in meinem Fall richtig geht.
habe ich ein wenig project für diese Frage:
Zweig master
- arbeitete Beispiel für Jersey 1.17.1;
Zweig jersey-2.0-migration
- nicht funktioniert Versuch, auf Jersey 2.0 zu migrieren - Test fehlgeschlagen;
Zweig jersey-2.0-migrate-client-only
- nicht arbeiten Versuch zu verwenden, Jersey-Client 2.0 mit Arbeits Server Jersey 1.17.1 - Test fehlgeschlagen.
Frage ist: Wie 2.0 POJO basiert JSON Bindung in Jersey ermöglichen
Es funktionierte für mich! Vielen Dank! Ich habe meinem kleinen [Projekt] (https://github.com/halfstrik/Jersey20Migration/tree/jersey-2.0-migration-success) auf GitHub 'jersey-2.0-migrate-server-success' und' jersey zwei neue Zweige hinzugefügt -2.0-Migrationserfolg' Sie beschreiben die Lösung und es hat den Test bestanden! – Strikki
Ich arbeite auch mit 'jersey-media-json-jackson 2.0' (siehe Update bei' jersey-2.0-migration'), aber ohne 'jersey-client 2.0' werden Warnungen wie erwähnt in [comments] (http: //stackoverflow.com/a/16993761/846325) – Strikki
Stunden der Qual sind vorbei. Moxy versagte leise und ich musste zurück zu Jackson und ich war bereit meinen Kopf durch ein Fenster zu stecken. Danke für diese Antwort. – JSager