Java 11 и как исправить java.lang. TypeNotPresentException: Исключение типа javax.xml.bind.JAXBContext?

Опубликовано: 2018-12-15

Исключение Java11 и javax.xml.bind.JAXBContext

Вы сталкиваетесь с java.lang.TypeNotPresentException : исключение типа javax.xml.bind.JAXBContext отсутствует ?

Сегодня при запуске моей службы RESTful на моем Eclipse я заметил ошибку javax.xml.bind.JAXBContext в моей консоли eclipse. Та же программа работала отлично с прошлого года без каких-либо проблем.

Я начал думать об изменениях, произошедших в моей локальной среде. С прошлого года не было проверки кода, поэтому я подумал, что это в основном из-за моего последнего обновления Java 11.

Как вы видели в моем предыдущем Все о Java 11, в нем больше нет поддержки модулей Java EE. В Java 11 удалена поддержка java.xml.bind , который определяет API архитектуры Java для привязки XML (JAXB).

Это полная трассировка стека:

И именно поэтому я начал получать исключение выше. Пакет Java 11 для javax.xml.bind больше не существует.

  • Версия Java 7: включена и работает
  • Версия Java 8: включена и работает
  • Версия Java 9: ​​устарела
  • Версия Java 10: устарела
  • Версия Java 11: удалено

Чтобы решить эту проблему, вам нужно вручную добавить в свой проект следующие зависимости JAXB Maven.

Вот мой полный файл pom.xml, если требуется:

Попробуйте очистить проект Eclipse и снова запустить сервер Tomcat. Вы больше не должны видеть эту проблему.

Удачного кодирования и дайте мне знать, если вы все еще сталкиваетесь с этим исключением после добавления вышеуказанных зависимостей Maven.