Не удалось поймать JsonMappingException

Моя 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, но это не заставило ошибку уйти. Любые мысли?

Ответ 1

JsonMappingException extends IOException, поэтому ваша среда IDE имеет некоторые более глубокие проблемы - возможно, импорт библиотеки запутан?

Ответ 2

У меня возникла эта проблема, когда я только добавил jackson-mapper-asl jar. Когда я добавил jackson-core-asl jar, он работал.

Это справедливо и для Jackson 2. Эта ошибка возникает, если вы включили только jackson-databind. Вы должны включить jackson-core.

Ответ 3

У меня была такая же проблема. Кажется, класс, унаследованный классом JsonMappingException, не находится в файле JAR. Я просто вернулся к версии 1.9, у которой не было проблемы.

Ответ 4

У меня была та же проблема, когда я добавил json-core, это сработало для меня!

Ответ 5

У меня была такая же проблема, потому что org.codehaus.jackson.map.JsonMappingException расширяет исключение JsonProcessingException (а не Throwable напрямую), и этого не хватает в пакете. После некоторых исследований я загрузил jars напрямую (не с Maven) и вручную добавил их в classpatch:

  • ДЖЕКСОНА-аннотаций-2.1.2
  • com.fasterxml.jackson.core
  • com.fasterxml.jackson.databind

Комбинация этих 3 пакетов решает эту проблему.

Ответ 6

Вы тоже это пробовали?

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

PS: Предполагая, response имеет тип com.sun.jersey.api.client.ClientResponse.