Jackson + Tomcat - java.lang.VerifyError: impossible d'hériter de la classe finale
J'ai un webservice Java s'exécutant dans Tomcat 6, qui accepte de JSON entrée. Je suis en train d'utiliser Jackson ObjectMapper pour analyser l'entrée json. Mais lors de l'initialisation de la ObjectMapper objet que je reçois cette erreur
16:08:13,616 ERROR [[jersey]] Servlet.service() for servlet jersey threw exception
java.lang.VerifyError: Cannot inherit from final class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2733)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1124)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1612)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
at com.test.project.offline.ws.WsApiResource.updateData(WsApiResource.java:169)
.......
À la ligne 169, j'ai ce ObjectMapper mapper = new ObjectMapper();
Lors de l'appel de com.test.projet.en mode hors connexion.ws.WsApiResource.updateData() la méthode localement dans un test unitaire, il fonctionne sans erreur.
De bien vouloir m'aider dans la résolution de ce. Je suis à l'aide de Jackson 1.8.4 et tomcat 6.
Mise à JOUR: correction de la question. Problème était une version différente de jackson dans l'arbre des dépendances. Hors il a résolu le problème.
source d'informationauteur Jithin
Vous devez vous connecter pour publier un commentaire.
J'ai aussi eu le même problème avec Apache Lucene. J'ai eu lucene-core-3.6.0.jar et lucene-core-3.5.0.jar dans mon /WEB-INF/lib du dossier. La suppression de l'une ou l'autre également résolu mon problème. Ce doit être un problème de gestion des versions.
J'ai eu le même problème avec Apache Solr, et il a été résolu par la suppression de mon
~/.m2
cache.Cette question a également été causée par la spécification de la version incorrecte de dépendance dans mon
pom.xml
fichier, où un autre paquet a été automatiquement de télécharger une autre version.Maven devrait vraiment avoir une sorte de conflit entre les versions de la résolution des dépendances régime...
De même pour moi - mon ejb3 application utilise jackson-tous-1.9.4 - et mon glassfish conteneur (v2.1) contient une lib/jackson-asl-0.9.4.jar:
Maintenant, j'ai remplacé jackson-le tout avec gson.
Merci,
Danny
Neil a une grande réponse à cette question. Cependant, à côté de votre cache M2, vérifiez si vous êtes un MANNEQUIN entier, comme je l'ÉTAIS et assurer votre POM ne comprend pas dire 2 paquets de la Même classe est déclarée. Google API sont bien connus pour les croix y compris les classes dans leur API Pots. Vous assurer de supprimer TOUT ce que vous n'avez pas besoin!