首页 > 解决方案 > 类型 Response.Response 构建器不可见

问题描述

我正在用 java 编写一个 RESTful 服务,但是当我尝试使用Resource类时,显示以下错误:The type Response.Response builder is not visible. 我不明白问题可能是什么,因为我已经导入了所需的 jar 并配置了类路径。有谁知道可能导致问题的原因?

这是我用来获取事件列表的方法,无论在哪里使用,我都会收到错误消息Response

@GET 
@Path("/active")
@Produces(MediaType.APPLICATION_JSON)
public Response getActiveEvents() {
    ArrayList<Event> list = EventSetup.getActiveEvents();
    if(list.size() > 0) return Response.status(200).entity(list).build();
    else return Response.status(404).entity("NULL").build();
}

标签: javarestjax-rs

解决方案


您列出的代码是正确的。当您将 JSON 指定为输出格式时,JAX-RS 将ArrayList<Event>使用对象映射器序列化结果对象 (),通常是Jackson.

我假设错误发生在序列化期间。

  • 是否使用了任何自定义或特殊序列化程序(在 ObjectMapper 的配置中,或作为 Jackson 注释)?这些序列化程序之一可能使用了 Response 构建器,因此它们可能是罪魁祸首。
  • 您是否导入了正确的 Response javax.ws.rs.core.Response)?您可能不小心Response从另一个包中导入了一个类。

堆栈跟踪对于定位异常的来源非常有帮助 - 在寻求有关异常的帮助时,请始终包含堆栈跟踪。


推荐阅读