2012-03-28 2 views
1

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

Вот как 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 это мой класс Нетти Handler. Ресурс очень прост:

@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; 
    } 
} 

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

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 

Я попытался включая классы контекста от here, но все равно не повезло.

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

ответ

0

У вас есть jackson-core и jackson-mapper librairies? Это то, что нам нужно, чтобы получить сериализацию JSON.

+0

mvn зависимость: дерево показывает, как джексон-сердечник и модули jackson-mapper-asl затягиваются jersey-json. Любые другие идеи? –