Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更好地记录Jackson解析错误_Java_Rest_Jackson - Fatal编程技术网

Java 更好地记录Jackson解析错误

Java 更好地记录Jackson解析错误,java,rest,jackson,Java,Rest,Jackson,我正在开发一个用Jackson-2.2.3构建的REST应用程序 以下是依赖关系: <dependency> <groupId>com.fasterxml.jackson.jaxrs</groupId> <artifactId>jackson-jaxrs-json-provider</artifactId> <version>2.2.3</version> </dependency> 由

我正在开发一个用Jackson-2.2.3构建的REST应用程序

以下是依赖关系:

<dependency>
  <groupId>com.fasterxml.jackson.jaxrs</groupId>
  <artifactId>jackson-jaxrs-json-provider</artifactId>
  <version>2.2.3</version>
</dependency>
由于此端点使用JSON,当api用户发送JSON时,Jackson将取消对
User
对象的搜索

如果用户使用错误的JSON调用端点,例如缺少属性或错误的结构。我想将错误JSON记录为字符串和错误。 我怎样才能做到这一点

我尝试使用过滤器,但没有成功。

考虑处理以下问题:

解析问题的异常类型,在遇到格式不正确的内容(根据规范不符合JSON语法的内容)时使用

要实现这一目标,您可以使用:

@Slf4j
@提供者
公共类JsonParseExceptionMapper实现ExceptionMapper{
@凌驾
公共响应响应(JsonParseException异常){
log.error(“无法解析JSON”,异常);
返回Response.status(Response.status.BAD_请求)
.entity(“无法解析JSON”)
.type(MediaType.TEXT\u PLAIN)
.build();
}
}
出于日志记录的目的,您可能还对使用
exception.getLocation()
获取一些详细信息感兴趣



要在Jersey中注册异常映射程序,请参阅此项。

显示未能注册的筛选器log@Kishor普拉卡什,你为什么要这个?若客户机发送了错误的json,他将得到错误响应。在服务器端的日志中,您会收到来自Jackson的错误消息。两者都应该包含错误的确切属性。在这种情况下,将不会调用createUser方法。另外还有什么目的?@Alexandr我想从负载中记录特定于客户端的ID,并用ELK中的图形可视化。
@POST
@Path(value = "/addUser")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response createUser(User user) {
    ...
}