Die POJO-basierte JSON-Bindungsunterstützung für Jackson in Jersey 2.0 kann nicht aktiviert werden
Ich verwende Jersey, um JSON (mit POJO-Mapping durch Jackson) und Jetty (von der Hauptmethode ausgehend) zu produzieren.
Es funktioniert perfekt für Jersey 1.x .:
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 habe ich mein Projekt auf Jersey 2.0 migriert und konnte die POJO-basierte JSON-Bindung darin nicht aktivieren. Ich erhalte Folgendes:org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class business.entity.ExampleEntity, genericType=class business.entity.ExampleEntity.
Offensichtlich,com.sun.jersey.api.json.POJOMappingFeature
gilt nicht mehr als Jersey geht anorg.glassfish
DasDokumentation sag folgendes:
Um Jackson als Ihren JSON (JAXB / POJO) -Anbieter zu verwenden, müssen Sie JacksonFeature und einen ContextResolver für ObjectMapper (falls erforderlich) in Ihrem Configurable (Client / Server) registrieren.
Aber ich kann nicht herausfinden, wie es in meinem Fall richtig gemacht wird.
Ich habe ein bisschen kreiertProjekt für diese frage:
Astmaster
- Beispiel für Jersey 1.17.1 gearbeitet;
Astjersey-2.0-migration
- Nicht funktionierender Versuch, auf Jersey 2.0 zu migrieren -im Test durchgefallen;
Astjersey-2.0-migrate-client-only
- Nicht funktionierender Versuch, Jersey Client 2.0 mit funktionierendem Jersey Server 1.17.1 zu verwenden -im Test durchgefallen.
Die Frage ist, wie die POJO-basierte JSON-Bindung in Jersey 2.0 aktiviert wird