如何在HttpMessageNotReadableException中访问_path属性

时间:2019-06-21 04:47:03

标签: java spring-boot

l想访问_path中的HttpMessageNotReadableException属性,但是我不知道从哪个方法执行此操作。我该如何访问?

我的JDK版本是JDK8,而我的Spring Boot版本是2.1.4。

2 个答案:

答案 0 :(得分:0)

您可以通过((MismatchedInputException)exception.getCause()).getPath()来访问它,其中exception的类型为HttpMessageNotReadableException

当然,这取决于类型为MismatchedInputException的原因,我不确定所有可能的原因类型为100%,但是您基本上可以为每种可能的类型定义各自的逻辑以提取_path可能。

我能够在以下异常处理程序方法中捕获并调查_path

@ExceptionHandler(HttpMessageNotReadableException.class)
public void handleBadRequestException(HttpMessageNotReadableException exception) {
    ((MismatchedInputException)exception.getCause()).getPath()  // do whatever with the result
    ...
}

为了安全起见,null可能更好一些,也许cause可以是null,所以在获取_path之前先添加一个空检查

答案 1 :(得分:0)

这就是我要做的:

e.getHttpInputMessage().getHeaders().getLocation().getPath()

如有必要,我会留给您检查null