2012-12-31 78 views
10

我的IDE是给我的错误Unhandled Exception com.fasterxml.jackson.databind.JsonMappingExceptionmapper.readValue线无法赶上JsonMappingException

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但它并没有让错误消失。有什么想法吗?

+0

您需要为特定类型的Exception添加一个catch块。尝试'catch(JsonMappingException jme){}' –

+3

我试过......当我这样做时,它说'Required:java.lang.Throwable'就好像那个Exception不能被抛出一样。 – Webnet

回答

2

JsonMappingException延伸IOException,所以你的IDE有自己的一些更深层的麻烦 - 也许库导入搞砸了?

+0

那么这里的实际问题是什么? –

+0

我不知道。 :) – StaxMan

+1

实际上,如果您使用org.codehaus.jackson.map.JsonMappingException,它会扩展JsonProcessingException,并且在包中缺少这一个。那就是问题所在。 – RichardK

0

你也试过这个吗?

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

PS:假设,responsecom.sun.jersey.api.client.ClientResponse类型。

+1

'String response = responseBuilder.toString();' – Webnet

+0

你得到的'response'的值是多少? – Srinivas

+0

我目前还没有运行应用程序,这是我的IDE抛出的错误。 – Webnet

1

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

6

我得到这个问题,当我只添加jackson-mapper-asl罐子。当我添加jackson-core-asl罐子它工作。

Jackson 2也是如此。如果只包含jackson-databind,则会发生此错误。您还需要包含jackson-core

1

我有同样的问题,当我加入json-core,它为我工作!

1

我有同样的问题,因为org.codehaus.jackson.map.JsonMappingException扩展JsonProcessingException(不是任何Throwable直接),并且这个在包中缺少。手工做一些研究,我直接下载jar文件(不与Maven)和后加入他们进入classpatch:

  • 杰克逊的注解-2.1.2
  • com.fasterxml.jackson.core
  • 融为一体。 fasterxml.jackson.databind

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