Не удалось включить поддержку связывания JSON на основе POJO для Джексона в Джерси 2.0
Я использую Джерси для производства JSON (с отображением POJO через Джексона) и Jetty (начиная с основного метода).
Идеально подходит для Джерси 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();
Теперь я перенес свой проект в Jersey 2.0 и не смог включить в него привязку JSON на основе POJO. Я получил следующее: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
больше не действует, поскольку Джерси идетorg.glassfish
документация скажи следующее:
Чтобы использовать Jackson в качестве поставщика JSON (JAXB / POJO), вам необходимо зарегистрировать JacksonFeature и ContextResolver для ObjectMapper (при необходимости) в своем Configurable (клиент / сервер).
Но я не могу понять, как сделать это правильно в моем случае.
Я создал немногопроект по этому вопросу:
веткаmaster
- работал пример для Джерси 1.17.1;
веткаjersey-2.0-migration
- не работает попытка мигрировать на Джерси 2.0 -тест не пройден;
веткаjersey-2.0-migrate-client-only
- нерабочая попытка использовать клиент Джерси 2.0 с работающим сервером Джерси 1.17.1 -тест не пройден.
Вопрос: как включить связывание JSON на основе POJO в Джерси 2.0