Jersey生成Json响应的配置

来源:互联网 发布:淘宝清洗订单后果 编辑:程序博客网 时间:2024/06/07 22:39

我在生成text响应是是没有问题的:

@Path("myresource")public class MyResource {@GET@Produces("text/plain")public String getIt() {return "hello";}}
但在生成json时:

@Path("/test")public class RestTest1 {@GET@Produces({ MediaType.APPLICATION_JSON })public HashMap getClientedMessage() {HashMap<String, String> map = new HashMap<String, String>();map.put("abc", "def");return map;}}


报了如下错误:

javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class java.util.HashMap, and Java type class java.util.HashMap, and MIME media type application/json was not found.

经查,要点如下:

1.需要引入jersey-json类包,maven依赖如下:

<dependency><groupId>com.sun.jersey</groupId><artifactId>jersey-json</artifactId><version>1.18</version></dependency>

2.需要在web.xml中的servlet中添加以下的POJOMappingFeature参数:

<servlet><servlet-name>Jersey</servlet-name><servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class><init-param><param-name>com.sun.jersey.config.property.packages</param-name><param-value>com.example</param-value></init-param><init-param><param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name><param-value>true</param-value></init-param><load-on-startup>1</load-on-startup></servlet>



1 1
原创粉丝点击