Java 11 et comment réparer java.lang. TypeNotPresentException : Tapez l'exception javax.xml.bind.JAXBContext ?

Publié: 2018-12-15

Exception Java11 et javax.xml.bind.JAXBContext

Êtes-vous confronté à java.lang.TypeNotPresentException : Type javax.xml.bind.JAXBContext not present exception ?

Aujourd'hui, lors de l'exécution de mon service RESTful sur mon Eclipse, j'ai remarqué une erreur javax.xml.bind.JAXBContext dans ma console eclipse. Le même programme fonctionnait parfaitement bien depuis l'année dernière sans aucun problème.

J'ai commencé à penser aux changements qui se sont produits dans mon environnement local. Il n'y a pas eu d'enregistrement de code depuis l'année dernière, donc j'ai pensé que c'était principalement à cause de ma dernière mise à jour Java 11.

Comme vous le voyez dans mon précédent Tout sur Java 11, il n'y a plus de support pour les modules Java EE dedans. Java 11 a supprimé la prise en charge de java.xml.bind , qui définit l'API JAXB (Java Architecture for XML Binding).

Elle est une pile-trace complète :

Et c'est la raison pour laquelle j'ai commencé à obtenir au-dessus de l'exception. Le package Java 11 pour javax.xml.bind n'existe plus.

  • Version Java 7 : incluse et opérationnelle
  • Version Java 8 : incluse et opérationnelle
  • Version Java 9 : obsolète
  • Version Java 10 : obsolète
  • Version Java 11 : supprimée

Afin de résoudre ce problème, vous devez ajouter manuellement les dépendances JAXB Maven ci-dessous à votre projet.

Voici mon fichier pom.xml complet si besoin :

Essayez de nettoyer votre projet Eclipse et essayez à nouveau d'exécuter votre serveur Tomcat. Vous ne devriez plus voir ce problème.

Bon codage et faites-moi savoir si vous faites toujours face à cette exception après avoir ajouté les dépendances Maven ci-dessus.