【问题标题】:JAX RS 500 ErrorJAX RS 500 错误
【发布时间】:2013-11-01 18:13:42
【问题描述】:

我有一个返回 500 错误的非常简单的服务 - 以下是错误的详细信息:

[EL Info]:2013-11-01 11:09:05.61--ServerSession(741529784)--EclipseLink,版本:Eclipse Persistence Services - 2.3.2.v20111125-r10461

[EL 信息]: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 'null' 同时处理 GET 请求发送到 ...

代码非常简单,与其他运行良好的服务非常相似:

公共类 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;

有什么想法吗?

【问题讨论】:

  • 你使用 Maven 吗?如果是,请向我们展示 pom.xml。

标签: jpa


【解决方案1】:

这似乎是 Rest 问题而不是 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>
-->

【讨论】:

  • 通过删除服务器并将其重新添加解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 2017-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-26
  • 1970-01-01
相关资源
最近更新 更多