2016-01-29 2 views
3

Я пытаюсь отобразить строку JSON в объект Java с использованием ObjectMapperObjectMapper java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering() Z

ObjectMapper mapper = new ObjectMapper(); 
CustomerData customerData = mapper.readValue(customerDataString, customerData.class); 

Но когда я делаю, Я получаю эту ошибку

java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z 
    at com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:530) 

Я посмотрел в Интернете и проверил для несовместимых зависимостей в pom.xml, и это, кажется, правильный вариант. Так что я пропущу?

<dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>2.6.0</version> 
    </dependency> 
+0

Я думаю, у вас есть противоречивые версии Jackson. Вы можете проверить mvn dependency: tree и посмотреть, есть ли другие конфликтующие libs jackson. – jah

+0

Возможный дубликат [Исключение в потоке "main" java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering() Z] (http://stackoverflow.com/questions/27746750/exception-in-thread -main-ява-Ланг-NoSuchMethodError-ком-fasterxml-ДЖЕКСОН-ко) – walen

ответ

3

Убедитесь, что вы не имеете старую версию артефакта «Джэксона-ядра» (< 2.3.0) как зависимость. Вы можете попробовать добавить

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-core</artifactId> 
    <version>2.6.0</version> 
</dependency> 

в качестве первой зависимости в вашем ПОМ.

4

зависимости должны быть связаны друг с другом. (Такая же версия)

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>${jackson.version}</version> 
</dependency> 

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-annotations</artifactId> 
    <version>${jackson.version}</version> 
</dependency> 

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-core</artifactId> 
    <version>${jackson.version}</version> 
</dependency>