2015-10-07 45 views
0
package com.marketplace.acres.dummyapp.test; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 
import javax.xml.bind.annotation.XmlRootElement; 


@Path("/fortest") 
@XmlRootElement 
public class ForTest { 
    public int id; 
    public String name; 

    public ForTest(){ 

    } 


    public ForTest(int id, String name){ 
     this.id = id; 
     this.name = name; 

    } 



    @GET 
    @Produces(MediaType.APPLICATION_XML) 
    public ForTest getMessages(){ 
     ForTest emp1 = new ForTest(22,"sachin"); 
     return emp1; 

     } 
    } 

這個代碼給出了預期的XML輸出:錯誤但是數據是XML格式輕鬆獲取

<forTest> 
<id>22</id> 
<name>sachin</name> 
</forTest> 

但是,當我試圖讓JSON格式的數據通過改變:

@Produces(MediaType.APPLICATION_XML)到@Produces(MediaType.APPLICATION_JSON),我得到一個錯誤:

重度:MessageBodyWriter未找到媒體類型=應用/ JSON, type = class com.marketplace.acres.dummyapp.test.ForTest,genericType = class com.marketplace.acres.dummyapp.test.ForTest。

如何獲取JSON格式的數據?

+0

您需要在類路徑上使用JSON解析器庫(如Jackson)。請參閱http://www.mkyong.com/spring-mvc/spring-3-mvc-and-json-example/ – hotzst

回答

0

通過取消註釋在pom.xml中

<dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-moxy</artifactId> 
    </dependency> 

這些行解決,但我是最初困惑EffectivePOM.xml的pom.xml在Eclipse是什麼之間的區別兩個?。在有效的POM中,這已經沒有註釋。