Java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonInclude $Value

Я пытаюсь преобразовать мою json-строку в объект java, и я получаю сообщение об ошибке

Исключение в потоке "main" java.lang.NoClassDefFoundError: com/quickxml/jackson/annotation/JsonInclude $Value     в com.fasterxml.jackson.databind.cfg.MapperConfig. (MapperConfig.java:45)     в com.fasterxml.jackson.databind.ObjectMapper. (ObjectMapper.java:535)     в com.fasterxml.jackson.databind.ObjectMapper. (ObjectMapper.java:452)     at com.allianz.cmis.util.ApacheHttpClientGet.main(ApacheHttpClientGet.java:65) Вызвано: java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonInclude $Value     на java.net.URLClassLoader $1.run(URLClassLoader.java:366)     на java.net.URLClassLoader $1.run(URLClassLoader.java:355)     в java.security.AccessController.doPrivileged(собственный метод)     на java.net.URLClassLoader.findClass(URLClassLoader.java:354)     в java.lang.ClassLoader.loadClass(ClassLoader.java:425)     at sun.misc.Launcher $AppClassLoader.loadClass(Launcher.java:308)     в java.lang.ClassLoader.loadClass(ClassLoader.java:358)     ... еще 4

Вот моя строка json и мой фрагмент кода

json string {'ctpnsw': [{'abc' , 'def' }]}

модель

public class Fields {

     private List<String> ctpnsw;

    public List<String> getCtpnsw() {
        return ctpnsw;
    }

    public void setCtpnsw(List<String> ctpnsw) {
        this.ctpnsw = ctpnsw;
    }

}

Код Java

ObjectMapper mapper = new ObjectMapper(); List<Fields> list = mapper.readValue(output, TypeFactory.defaultInstance().constructCollectionType(List.class,Fields.class)); System.out.println(list);

Ответы

Ответ 1

Как добавить это в свой pom.xml

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

Ответ 2

У меня было то же сообщение об ошибке. В моем случае Джексон состоял из нескольких файлов JAR. К сожалению, у них были разные версии аннотаций jackson-core и jackson-аннотаций, что привело к вышеупомянутому исключению.

Возможно, у вас нет JAR с аннотацией Джексона в вашем classpath, по крайней мере, не в правильной версии. Вы можете проанализировать используемые версии библиотеки с помощью команды mvn dependency:tree.

Ответ 3

Распределение/разборки Джексона требует следующих файлов jar той же версии.

  • джексон-жильный

  • джексон-DataBind

  • ДЖЕКСОНА-аннотаций

    Убедитесь, что вы добавили все это с той же версией в свой путь к классам. В вашем случае джоксон-аннотации отсутствует в пути к классам.

Ответ 5

это версия проблемы изменения версии> 2,4 до 1,9 решить ее

<dependency>  
<groupId>com.fasterxml.jackson.jaxrs</groupId>  
<artifactId>jackson-jaxrs-xml-provider</artifactId>  
<version>2.4.1</version>  

в

<dependency>  
<groupId>org.codehaus.jackson</groupId>  
<artifactId>jackson-mapper-asl</artifactId>  
<version>1.9.4</version>  

Ответ 6

Используйте jackson-bom, который будет иметь все три версии jackson.iejackson-annotations, jackson-core и jackson-databind. Это разрешит зависимости, связанные с этими версиями