【发布时间】:2014-08-07 15:05:47
【问题描述】:
我最近升级到 Jersey 2.x,当我调用这个网络服务时:
@GET
@Path("/mocks")
@Produces(MediaType.APPLICATION_JSON)
public String getIt() {
List<Date> list = new ArrayList<>();
list.add(new Date());
list.add(new Date());
list.add(new Date());
return Response.status(200).entity(list).build();
}
我收到以下错误消息:
org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json, type=class java.util.ArrayList, genericType=class java.util.ArrayList.
完整的输出如下:
javax.servlet.ServletException: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException:
MessageBodyWriter not found for media type=application/json, type=class java.util.ArrayList, genericType=class java.util.ArrayList.
org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:391)
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:382)
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:345)
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:220)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
我把依赖注释掉了
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>
同样的事情又发生了。然后我尝试添加以下依赖项,但没有任何改变:
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>2.4.1</version>
</dependency>
关于如何解决这个问题的任何想法?
【问题讨论】:
-
你能显示你的 web.xml 吗?