类型 Response.Response 构建器不可见

The type Response.Response builder is not visible

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

这是我用来获取事件列表的方法,在使用 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();
}

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

我假设错误发生在序列化过程中。

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

堆栈跟踪 对定位异常源非常有帮助 - 请在寻求有关您遇到的异常的帮助时始终包括堆栈跟踪。

我找到了解决这个问题的方法。项目中包含的所有 jar 文件都需要位于 WebContent/WEB-INF/lib 文件夹中,否则 Eclipse 将看不到它们并会产生错误。