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中,这已经没有注释。