web-dev-qa-db-fra.com

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

J'essaie de convertir ma chaîne json en objet Java et j'obtiens une erreur 

Exception dans le fil "principal" Java.lang.NoClassDefFoundError: com/Fastxml/Jackson/Annotation/JsonInclude $ Valeur à l'adresse com.fasterxml.jackson.databind.cfg.MapperConfig. (MapperConfig.Java:45) à l'adresse com.fasterxml.jackson.databind.ObjectMapper. (ObjectMapper.Java:535) à l'adresse com.fasterxml.jackson.databind.ObjectMapper. (ObjectMapper.Java:452) à com.allianz.cmis.util.ApacheHttpClientGet.main (ApacheHttpClientGet.Java:65) Causée par: Java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonInclude $ Value at Java.net.URLClassLoader $ 1.run (URLClassLoader.Java:366) at Java.net.URLClassLoader $ 1.run (URLClassLoader.Java:355) sur Java.security.AccessController.doPrivileged (Native Method) sur Java.net.URLClassLoader.findClass (URLClassLoader.Java:354) sur Java.lang.ClassLoader.loadClass (ClassLoader.Java:425) à Sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.Java:308) sur Java.lang.ClassLoader.loadClass (ClassLoader.Java:358) ... 4 plus

Voici ma chaîne json et mon extrait de code

chaîne json {'ctpnsw': [{'abc' , 'def' }]}

modèle

public class Fields {

     private List<String> ctpnsw;

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

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

}

Code Java 

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

25
user327126

Que diriez-vous d'ajouter ceci à votre pom.xml

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

J'ai eu le même message d'erreur. Dans mon cas, Jackson consistait en plusieurs fichiers JAR. Malheureusement, ils avaient différentes versions de jackson-core et jackson-annotations, ce qui a entraîné l'exception ci-dessus.

Vous n'avez peut-être pas le fichier JAR d'annotation jackson dans votre chemin de classe, du moins pas dans la version correcte. Vous pouvez analyser les versions de bibliothèque utilisées avec la commande mvn dependency:tree .

15
Marcus K.

Jackson marshalling/unmarshalling nécessite le suivi des fichiers jar de la même version.

  1. jackson-core

  2. jackson-databind

  3. annotations jackson

    Assurez-vous que vous avez ajouté tous ceux-ci avec la même version dans votre chemin de classe. Dans votre cas, jackson-annotations manque dans classpath.

14
Vino

Récupérez les 3 pots Jackson et ajoutez-les à votre chemin de construction:

https://mvnrepository.com/artifact/com.fasterxml.jackson.core

1
Baked Inhalf

ceci est un problème de version changer de version> 2.4 à 1.9 le résoudre

<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>  

0
Jijun Jiang