我有一个非常简单的服务,返回500错误 - 这里是错误的详细信息:
[EL Info]:2013-11-01 11:09:05.61 - ServerSession(741529784) - EclipseLink,版本:Eclipse Persistence Services - 2.3.2.v20111125-r10461
[EL Info]:2013-11-01 11:09:06.452 - ServerSession(741529784) - file:/ C:/Users/Fred/workspace/.metadata/.plugins/org.eclipse.wst。 server.core / tmp0 / wtpwebapps / cheese-ws / WEB-INF / lib / cheese-jpa.jar_cheese登录成功
34442 [http-bio-8080-exec-1]错误org.apache.wink.server.internal.handlers.FlushResultHandler - 系统找不到javax.ws.rs.ext.MessageBodyWriter或DataSourceProvider类java.util.Vector类型和application / json mediaType。确保JAX-RS应用程序中存在指定类型和媒体类型的javax.ws.rs.ext.MessageBodyWriter。
34446 [http-bio-8080-exec-1] INFO org.apache.wink.server.internal.RequestProcessor - 在调用处理程序链期间发生以下错误:WebApplicationException(500 - Internal Server Error)with message处理发送给...的GET请求时'null'。
代码非常简单,与其他可以正常工作的服务非常相似:
公共类StudentTeacherCommunicationService扩展了BaseService {
@GET
@Path("classroomId/{classroomId}/studentId/{studentId}")
@Produces(MediaType.APPLICATION_JSON)
public List<ClassroomStudentCommunication> getCandidatesAsJson(@PathParam("classroomId") int classroomId, @PathParam("studentId") int studentId) {
EntityManager em = createEM();
TypedQuery<ClassroomStudentCommunication> query;
if(studentId==0) {
query = em.createQuery("SELECT csc FROM ClassroomStudentCommunication csc where csc.classroomId = :classroomId ORDER BY csc.threadOrder", ClassroomStudentCommunication.class);
query.setParameter("classroomId", classroomId);
List <ClassroomStudentCommunication> classCommunication = query.getResultList();
return classCommunication;
有什么想法吗?
答案 0 :(得分:0)
这似乎是一个休息问题,而不是JPA问题。 如果您碰巧使用Maven并使用原型或IDE生成项目,则值得检查生成的pom.xml。默认情况下,可以在pom.xml中关闭JSON支持。
例如,如果您使用Jersey并且您的项目是使用jersey-quickstart-webapp原型生成的,那么您应该在pom.xml中手动取消注释以下部分:
<!-- uncomment this to get JSON support
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>
-->