类型“ Response.Response”构建器不可见

时间:2018-08-27 22:20:49

标签: java rest jax-rs

我正在用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();
}

2 个答案:

答案 0 :(得分:0)

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

我认为该错误是在序列化过程中发生的。

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

堆栈跟踪对查找异常的来源非常有帮助-在寻求有关所获取异常的帮助时,请始终包括堆栈跟踪。

答案 1 :(得分:0)

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