2012-03-28 31 views
1

我正在嘗試使用Jersey RS爲POJO返回JSON。這是而不是一個servlet,並且沒有servlet容器。澤西島正在從Netty(不是捷蒂)內設置。我可以讓Jersey返回APPLICATION_XML,但APPLICATION_JSON在同一個資源上拋出一個異常,說沒有發現我的域類的Message Body writer。我在pom.xml中包含了jersey-json和jackson-jaxrs模塊。Jersey應用程序無法返回簡單POJO的JSON表示

這裏的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 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的Context類,但仍然沒有運氣。

我無法想象從Jersey返回JSON可能很難。互聯網上的所有例子都假設你使用的是一個servlet容器中的Jersey,但我不是!感謝任何投入。

回答

0

你有Jackson-core和jackson-mapper的書籤嗎?這就是我們需要讓JSON序列化工作的原因。

+0

mvn依賴關係:tree顯示jackson-core和jackson-mapper-asl模塊被jersey-json拉入。任何其他想法? – 2012-03-28 20:23:04

相關問題