无法捕获JsonMappingException

时间:2012-12-31 18:29:43

标签: java jackson

我的IDE通过Unhandled Exception com.fasterxml.jackson.databind.JsonMappingException

向我提供了错误mapper.readValue
ObjectMapper mapper = new ObjectMapper();
try {
    if (response.isEmpty()) {
        //Http 204 (No Content) returned from MCC
        //We should handle this differently
        user = new User();
    } else {
        user = mapper.readValue(response, User.class);
    }
} catch (IOException ioe) {
    logger.log(Level.SEVERE, ioe.getLocalizedMessage());
}
return user;

我试过捕捉JsonMappingException,但它没有让错误消失。有什么想法吗?

7 个答案:

答案 0 :(得分:6)

当我只添加jackson-mapper-asl jar时,我遇到了这个问题。当我添加jackson-core-asl jar时,它起作用了。

杰克逊2也是如此。如果您只包含jackson-databind,则会出现此错误。您还需要包含jackson-core

答案 1 :(得分:2)

JsonMappingException扩展了IOException,因此您的IDE遇到了一些更深层次的麻烦 - 也许图书馆的导入很混乱?

答案 2 :(得分:2)

我遇到了同样的问题,因为org.codehaus.jackson.map.JsonMappingException扩展了JsonProcessingException(不是任何直接的Throwable),并且包中缺少这个问题。在做了一些研究后,我直接下载了罐子(不是Maven)并手动将它们添加到classpatch中:

  • 杰克逊 - 注解-2.1.2
  • com.fasterxml.jackson.core
  • com.fasterxml.jackson.databind

这3个软件包的组合解决了这个问题。

答案 3 :(得分:1)

我有同样的问题。似乎JsonMappingException类继承的类不在JAR文件中。我刚刚恢复到没有问题的版本1.9。

答案 4 :(得分:1)

我有同样的问题,当我添加json-core时,它对我有效!

答案 5 :(得分:0)

你也尝试过这个吗?

user = mapper.readValue(response.getEntity(String.class),User.class);

PS:假设response的类型为com.sun.jersey.api.client.ClientResponse

答案 6 :(得分:0)

添加jackson-core-asl.jar,它会起作用