LinkageError JAXB 2.0 -> 2.1 (Tomcat)
J'obtiens cette erreur lorsque j'essaie d'accéder à mon webservice cours d'exécution à l'intérieur de tomcat.
Causés par: java.lang.LinkageError: JAXB 2.0 de l'API est chargé à partir du fichier d'amorce du chargeur de classe, mais ce RI (à partir de jar:file:/C:/software/tomcat6/webapps/messaging/WEB-INF/lib/jaxb-impl-2.1.5.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) les besoins 2.1 de l'API. Utilisez la approuvé répertoire mécanisme de place jaxb-api.jar dans le bootstrap chargeur de classe. (Voir http://java.sun.com/j2se/1.5.0/docs/guide/standards/)
J'ai googlé pour l'erreur et fait ce que doit résoudre (j'ai mis jaxb-api.jar version 2.1 du JDK/lib/approuvé et JDK/jre/lib/approuvé), mais il ne semble pas avoir d'effet.
Je ne l'avais pas avant, et je ne suis pas sûr de ce qui a changé. J'ai utiliser le JDK 6u10.
OriginalL'auteur Bart van Heukelom | 2009-04-07
Vous devez vous connecter pour publier un commentaire.
Java 6u10 comprend JAXB 2.1, donc il n'est pas nécessaire de l'inclure à tous (il a été inclus depuis 6u4).
Droit maintenant il semble que vous avez un conflit entre JAXB inclus avec une webapp et le logiciel d'JAXB qui vient avec le JRE. Vous pouvez essayer de retirer le JAXB jar à partir de votre webapp (
C:/software/tomcat6/webapps/messaging/WEB-INF/lib/jaxb-impl-2.1.5.jar
) et de s'appuyer sur la version intégrée.OriginalL'auteur andri
Il est recommandé de définir la JAVA_ENDORSED_DIRS variable d'environnement. Puis Tomcat va utiliser cette propriété Java:
pour le chargement de l'approuve les pots. Donc, créer un dossier, mettez jaxb-api.jar v2.1 il et de définir la variable d'environnement à point dans ce dossier.
C'est mieux que le mondial a approuvé répertoire, car il n'affecte pas l'ensemble de la JVM et vous n'avez pas à répéter le processus, lorsque le JRE est mis à jour.
OriginalL'auteur kgiannakakis
Est-il possible que vous ayez la jaxb pots dans le $JAVA_HOME/jre/lib/ext répertoire? Voici la définition du chargeur de démarrage:
(Pris sous forme ici)
Veuillez rechercher tous les endroits où vous avez le jaxb pots dans le système (au moins jaxb-api et jaxb-impl) et assurez-vous qu'ils sont dans le WEB-INF/lib de votre application web ou dans le répertoire lib de tomcat.
OriginalL'auteur David Rabinowitz