首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Spring抛出HttpMessageNotReadableException的原因不同

为什么Spring抛出HttpMessageNotReadableException的原因不同
EN

Stack Overflow用户
提问于 2013-08-08 07:51:38
回答 2查看 8.2K关注 0票数 1

我有一个异常处理程序控制器,在这里捕获HttpMessageNotReadableException,如下所示:

代码语言:javascript
运行
复制
@ExceptionHandler(HttpMessageNotReadableException.class)
    @ResponseStatus(value = HttpStatus.BAD_REQUEST)
    @ResponseBody
    protected ErrorMessage handleJsonException(final HttpMessageNotReadableException ex, final HttpServletRequest request)
{
    if (ex.getCause() instanceof JsonParseException)
    {
       // some code
    }
    if (ex .getCause() instanceof JsonMappingException)
    {
       // some code
    }
}

我有不同的原因来发布文章,并使用格式错误的JSON (JSON文本中缺少第一个双引号)

代码语言:javascript
运行
复制
{firstName":"abc","lastName":"xyz"}

后JsonParseException

PUT - JsonMappingException

我认为这两者都应该有相同的原因"JsonParseException“的语法是错误的。

有谁能提出为什么春天给出的"JsonMappingException".不同的PUT

EN

回答 2

Stack Overflow用户

发布于 2013-11-07 21:21:09

为了解决这类问题,我发现本文-> http://www.jayway.com/2013/02/03/improve-your-spring-rest-api-part-iii/有一些解决方法,比如使用"getMostSpecificCause“。我读它是为了解决我的问题。

票数 0
EN

Stack Overflow用户

发布于 2016-07-25 15:56:50

试试这个//ex -> HttpMessageNotReadableException

代码语言:javascript
运行
复制
    Throwable throwable = ex.getCause();
JsonMappingException jsonMappingException = ((JsonMappingException) throwable);
    // import 'InvalidFormatException' from  com.fasterxml.jackson.databind.exc package
    List<JsonMappingException.Reference> references = ((InvalidFormatException)throwable).getPath();
    for (JsonMappingException.Reference reference : references) {
        if (reference.getFieldName() != null) {
            field += reference.getFieldName() + ".";
        }
    }
    String message = jsonMappingException.getOriginalMessage();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18120705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档