Spring返回JSON中的代理对象
我正在使用Spring返回JSON中的代理对象,json,spring,jersey,spring-data,Json,Spring,Jersey,Spring Data,我正在使用Spring数据存储库来持久化对象。我试图通过RESTWebAPI(Jersey)返回它们并得到一个错误,但当我试图返回普通的POJO对象时,一切看起来都很好,Jersey将对象解析为JSON,我得到的响应代码是200 @POST @Path("/test") @Produces( MediaType.APPLICATION_JSON ) public Document test() { Document d = documentRepository.findOne(123L)
Spring数据存储库来持久化对象。我试图通过RESTWebAPI(Jersey
)返回它们并得到一个错误,但当我试图返回普通的POJO对象时,一切看起来都很好,Jersey将对象解析为JSON,我得到的响应代码是200
@POST
@Path("/test")
@Produces( MediaType.APPLICATION_JSON )
public Document test() {
Document d = documentRepository.findOne(123L);
return d; // response code 500 without any stack trace
return new Document(); // normal JSON object in response content
}
我对泽西岛的依赖:
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-spring3</artifactId>
<version>2.16</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-processing</artifactId>
<version>2.16</version>
</dependency>
org.glassfish.jersey.ext
泽西-斯普林3
2.16
org.glassfish.jersey.media
jersey媒体json处理
2.16
web.xml:
<servlet>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>
javax.ws.rs.core.Application
1.
javax.ws.rs.core.Application
/ws/*
如何从spring数据存储库返回代理对象或这些对象的列表?您是否确保documentRepository.findOne()方法确实返回了正确的文档且不为空?是的,我调试了代码,它是代理对象请按如下方式尝试:返回响应。确定(d,MediaType.APPLICATION_JSON)。build();将返回类型更改为Response.Same问题-代码500是否使用注释@XmlRootElement(javax.xml.bind.annotation.XmlRootElement)对文档类进行了注释?而且,如果您将调试日志打印到控制台,也会更好。