Jersey:如何在用户请求中捕获JSON映射/解析错误?

时间:2017-05-08 18:45:05

标签: java json exception-handling jersey

示例端点:

@POST
@Path("/user")
@Consumes("application/json")
private Response saveUser(User user) {
//do something return Response.class
}

根据我的理解,Jersey将JSON从post body转换为User对象。

假设客户端发送了格式不正确的JSON(无效的JSON,而不是用户对象等),我如何捕获Jersey引发的错误?

我所拥有的ExceptionMapper没有捕捉到它。但是,如果我将String json设置为参数,然后使用User将其映射到ObjectMapper对象,则会抓住它。

如果可能的话,我会喜欢它,如果我不能使用ClientResponseFiltersContainerResponseFilters,因为我希望我的所有异常/错误处理只在一个地方,这是一个ExceptionMapper。 / p>

另外,ExceptionMapper似乎是处理Exceptions的合适类。

这是我得到的错误:

Unexpected character ('a' (code 97)): was expecting double-quote to start field name at [Source: org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream@6d4a3a6f; line: 3, column: 28]

编辑:对于那些没有阅读我的帖子的主体而只是将其标记为重复的人:我确实注册了一个ExceptionMapper,但错误已经过去了。

0 个答案:

没有答案
相关问题