Приложение Джерси не может вернуть представление JSON для простого POJO - PullRequest
1 голос
/ 28 марта 2012

Я пытаюсь использовать Jersey RS, чтобы вернуть JSON для POJO.Это не сервлет и нет контейнера сервлета.Джерси настраивается из Netty (не Jetty).Я могу заставить Джерси вернуть APPLICATION_XML, но APPLICATION_JSON на том же ресурсе выдает исключение, сообщающее, что не найден модуль записи тела сообщения для моего класса домена.Я включил модули jersey-json и jackson-jaxrs в pom.xml.

Вот как настраивается ResourceConfig:

Map<String, Object> props = new HashMap<String, Object>();
props.put(PackagesResourceConfig.PROPERTY_PACKAGES, RESOURCES_PACKAGE);
props.put(PROPERTY_BASE_URI, "http://localhost:9000/");
props.put(JSONConfiguration.FEATURE_POJO_MAPPING, true);    
ContainerFactory.createContainer(JerseyHandler.class, new PackagesResourceConfig(props));

, где JerseyHandler - мой класс обработчика Netty.Ресурс очень прост:

@Path("/test")
public class TestResource {
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public TestData get() {
           return new TestData();
    }

TestData - самый простой класс модели:

@XmlRootElement
public class TestData {
   private String firstName;
   private String lastName;

   public TestData() {}
   public String getFirstName() {
      return firstName;
   }

   public void setFirstName(String firstName) {
       this.firstName = firstName;
   }

   public String getLastName() {
       return lastName;
   } 

   public void setLastName(String lastName) {
       this.lastName = lastName;
   }
}

Вот исключение при попытке доступа к "/ test":

SEVERE: A message body writer for Java class com.xyz.models.TestData, and Java type class com.xyz.models.TestData, and MIME media type application/json was not found

Я пытался включить классы контекста из здесь , но все еще не повезло.

Не могу себе представить, что вернуть JSON из Джерси может быть так сложно.Все примеры в интернете предполагают, что вы используете Джерси из контейнера сервлетов, а я нет!спасибо за любые материалы.

1 Ответ

0 голосов
/ 28 марта 2012

Есть ли у вас библиотеки Джексона-Ядра и Джексона-Маппера? Это то, что нам нужно для работы сериализации JSON.

...