java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonInclude$Valeur
Je suis en train de convertir ma chaîne json pour objet java, et j'obtiens l'erreur
Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonInclude$Valeur
au com.fasterxml.jackson.databind.cfg.MapperConfig.(MapperConfig.java:45)
au com.fasterxml.jackson.databind.ObjectMapper.(ObjectMapper.java:535)
au com.fasterxml.jackson.databind.ObjectMapper.(ObjectMapper.java:452)
au com.allianz.cmis.util.ApacheHttpClientGet.principale(ApacheHttpClientGet.java:65)
Causés par: java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonInclude$Valeur
à java.net.URLClassLoader$1.exécuter(URLClassLoader.java:366)
à java.net.URLClassLoader$1.exécuter(URLClassLoader.java:355)
à java.de sécurité.AccessController.doPrivileged(Native method)
à java.net.URLClassLoader.findClass(URLClassLoader.java:354)
à java.lang.Chargeur de classe.loadClass(ClassLoader.java:425)
au coucher du soleil.misc.Lanceur$AppClassLoader.loadClass(Lanceur.java:308)
à java.lang.Chargeur de classe.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);
Vous devez vous connecter pour publier un commentaire.
Comment à propos de l'ajout à votre pom.xml
Jackson marshalling/unmarshalling nécessite fichiers jar suivants de la même version.
jackson-core
jackson-databind
jackson-annotations
Assurez-vous que vous avez ajouté toutes ces avec la même version dans votre classpath. Dans votre cas jackson-annotations est manquant dans le classpath.
J'ai eu le même message d'erreur. Dans mon cas, Jackson composé de plusieurs fichiers JAR. Malheureusement, ils ont eu différentes versions de jackson et jackson-annotations qui a abouti à l'exception ci-dessus.
Peut-être que vous n'avez pas le jackson-annotation JAR dans votre classpath, au moins pas dans la version correcte. Vous pouvez analyser les utilisé versions de la bibliothèque avec la commande
mvn dependency:tree
.Même si cette réponse était trop tard, je vais ajouter ça parce que moi aussi je suis passé par un temps horrible de trouver réponse à la même question. Seule différence, j'ai eu du mal avec AWS Comprendre Médical de l'API.
À l'heure où j'écris cette réponse, si quelqu'un à rencontré le même problème avec AWS Sdk veuillez downgrade jackson-annotaions ou tout jackson dépendances à 2.8.* les versions.
La dernière 2.9.* les versions ne fonctionne pas correctement avec le SDK AWS pour une raison quelconque. Quelqu'un a une idée sur la raison derrière cela n'hésitez pas à commenter ci-dessous.
Juste au cas où si quelqu'un est paresseux pour google maven repos, j'ai lié nécessaire repos.Check them out!
Utilisation jackson-bom qui ont tous les trois jackson versions.j'.e.jackson-annotations, jackson et jackson-databind. Cela permettra de résoudre les dépendances liées à ces versions
Obtenir tous les 3 jackson pots et de les ajouter à votre build path:
https://mvnrepository.com/artifact/com.fasterxml.jackson.core
c'est un problème de version
changement de version > 2.4 1.9 résoudre
à
J'ai eu une version différente des annotations jar. Changé tous les 3 pots à utiliser MÊME version de databind,d'annotations et de base jackson pots