【发布时间】:2012-06-17 22:51:22
【问题描述】:
我在访问我的 jax-rs 资源时收到以下堆栈跟踪。
我使用的是 Tomcat 7、Jersey 1.12、Hibernate 4 和 MySQL。
我在寻找解决方案时发现了本教程:http://aruld.info/handling-generified-collections-in-jersey-jax-rs/,但列出的示例似乎都不起作用。
我在这里错过了什么?
请不要让我写MessageBodyWriters 的答案,这应该可以解决。 (而且我知道有一个解决方案,我就是想不通。)
这是我所有的罐子:
antlr-2.7.7.jar
asm-3.1.jar
commons-collections-3.2.1.jar
dom4j-1.6.1.jar
gson-1.7.1.jar
hibernate-commons-annotations-4.0.1.Final.jar
hibernate-core-4.1.0.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
jackson-core-asl-1.9.2.jar
jackson-jaxrs-1.9.2.jar
jackson-mapper-asl-1.9.2.jar
jackson-xc-1.9.2.jar
javassist-3.15.0-GA.jar
jboss-logging-3.1.0.CR2.jar
jboss-transaction-api_1.1_spec-1.0.0.Final.jar
jersey-client-1.12.jar
jersey-core-1.12.jar
jersey-json-1.12.jar
jersey-server-1.12.jar
jersey-servlet-1.12.jar
jettison-1.1.jar
jsr311-api-1.1.1.jar
mysql-connector-java-3.1.12-bin.jar
这是我的资源类和方法:
@Path("/region")
public class RegionService {
// This method is called if TEXT_PLAIN is request
@GET
@Produces(MediaType.APPLICATION_JSON)
public JResponse<List<Region>> region() {
RegionDao regionDao = new RegionDao();
regionDao.openSession();
List<Region> regions = regionDao.getAll();
regionDao.closeSession();
return JResponse.ok(regions).build();
}
}
这里是堆栈跟踪:
SEVERE: Mapped exception to response: 500 (Internal Server Error)
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class java.util.ArrayList, and Java type java.util.List<campher.hibernate.entities.Region>, and MIME media type application/json was not found
at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:285)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1451)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1363)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1353)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:414)
【问题讨论】:
-
非常感谢。就是这样!!这实际上是解决我的问题的问题。我需要添加 com.sun.jersey.api.json.POJOMappingFeature 参数。 掌心
-
现在解决这个问题的最佳方法是什么?您能否发表您的评论作为答案,还是我应该完全删除这个愚蠢的问题?
-
不要删除它。这是一个有用的谷歌搜索结果。
-
您好,我遇到了同样的问题,但我不明白您所说的“添加 com.sun.jersey.api.json.POJOMappingFeature 参数”是什么意思。您在哪里/如何做到这一点?