类型 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
将看不到它们并会产生错误。
我正在 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
将看不到它们并会产生错误。