Nie można włączyć obsługi JSON opartej na POJO dla Jacksona w Jersey 2.0
Używam Jersey do produkcji JSON (z mapowaniem POJO przez Jacksona) i Jetty (start od głównej metody).
Działa idealnie dla 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();
Teraz dokonałem migracji mojego projektu do Jersey 2.0 i nie udało mi się włączyć powiązania JSON opartego na POJO, otrzymałem następujące:org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class business.entity.ExampleEntity, genericType=class business.entity.ExampleEntity.
Oczywiście,com.sun.jersey.api.json.POJOMappingFeature
już nieważne, jak jedzie Jerseyorg.glassfish
Thedokumentacja powiedz co następuje:
Aby użyć Jacksona jako dostawcy JSON (JAXB / POJO), musisz zarejestrować JacksonFeature i ContextResolver dla ObjectMapper (jeśli jest to konieczne) w konfigurowalnym (klient / serwer).
Ale nie wiem, jak to zrobić poprawnie w moim przypadku.
Stworzyłem trochęprojekt na to pytanie:
Oddziałmaster
- opracowany przykład dla Jersey 1.17.1;
Oddziałjersey-2.0-migration
- nie działa próba migracji do Jersey 2.0 -Test nieudany;
Oddziałjersey-2.0-migrate-client-only
- nie działająca próba użycia klienta Jersey 2.0 z działającym serwerem Jersey 1.17.1 -Test nieudany.
Pytanie brzmi: jak włączyć wiązanie JSON oparte na POJO w Jersey 2.0