Домой Учебники по Java и J2EE Java 11 и Как исправить java.lang. TypeNotPresentException: введите javax.xml.bind.JAXBContext Exception?

Java 11 и Как исправить java.lang. TypeNotPresentException: введите javax.xml.bind.JAXBContext Exception?

548
0

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

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

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

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

Ее полный стек-след:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
декабрь 14 , 2018 1: 23: 19 PM ком . солнце. Джерси. api . ядро. сервлет. WebAppResourceConfig INIT
ИНФОРМАЦИЯ : Сканирование для корневой ресурс и классы провайдера в Вебприложение путь ресурсов:
   / WEBINF / lib
   / WEBINF / классы
декабрь 14 , 2018 1: 23: 20 PM ком . солнце. Джерси. сервер . импл . приложение . WebApplicationImpl _initiate
ИНФОРМАЦИЯ : Инициирование заявки на Джерси , версия 'Джерси: 1.17.1 28.02.2013 12:47'
декабрь 14 , 2018 1: 23: 20 PM орг . апач . каталина . ядро. журнал ApplicationContext
ТЯЖЕЛАЯ : StandardWrapper . Throwable
Java. яз. TypeNotPresentException : Введите Javax . XML. привязывать. JAXBContext нет подарок
в Яве . база / солнце . отражать. дженерики. завод. CoreReflectionFactory . makeNamedType ( CoreReflectionFactory . java : 117 )
в Яве . база / солнце . отражать. дженерики. гость. Reifier . visitClassTypeSignature ( Reifier . Java : 125 )
в Яве . база / солнце . отражать. дженерики. дерево. ClassTypeSignature . принять ( ClassTypeSignature . Java : 49 )
в Яве . база / солнце . отражать. дженерики. гость. Reifier . reifyTypeArguments ( Reifier . Java : 68 )
в Яве . база / солнце . отражать. дженерики. гость. Reifier . visitClassTypeSignature ( Reifier . Java : 138 )
в Яве . база / солнце . отражать. дженерики. дерево. ClassTypeSignature . принять ( ClassTypeSignature . Java : 49 )
в Яве . база / солнце . отражать. дженерики. хранилище . ClassRepository . computeSuperInterfaces ( ClassRepository . Java : 117 )
в Яве . база / солнце . отражать. дженерики. хранилище . ClassRepository . getSuperInterfaces ( ClassRepository . java : 95 )
в Яве . база / Java . яз. Класс. getGenericInterfaces ( Класс . Java : 1138 )
на ком . солнце. Джерси. ядро. отражение. ReflectionHelper . getClass ( ReflectionHelper . Java : 533 )
на ком . солнце. Джерси. ядро. отражение. ReflectionHelper . getClass ( ReflectionHelper . Java : 529 )
на ком . солнце. Джерси. ядро. spi . завод. ContextResolverFactory . getParameterizedType ( ContextResolverFactory . java : 202 )
на ком . солнце. Джерси. ядро. spi . завод. ContextResolverFactory . init ( ContextResolverFactory . java : 89 )
в орг . апач . каталина . Util. LifecycleBase . начало ( LifecycleBase . Java : 183 )
в орг . апач . каталина . ядро. StandardServer . startInternal ( StandardServer . Java : 801 )
в орг . апач . каталина . Util. LifecycleBase . начало ( LifecycleBase . Java : 183 )
в орг . апач . каталина . запуск . Каталина. начало ( Каталина . Ява : 695 )
в Яве . база / JDK . внутренний . отражать. NativeMethodAccessorImpl . invoke0 ( Native Метод )
в Яве . база / JDK . внутренний . отражать. NativeMethodAccessorImpl . invoke ( NativeMethodAccessorImpl . Java : 62 )
в Яве . база / JDK . внутренний . отражать. DelegatingMethodAccessorImpl . invoke ( DelegatingMethodAccessorImpl . java : 43 )
в Яве . база / Java . яз. отражать. Метод. invoke ( Метод . Java : 566 )
в орг . апач . каталина . запуск . Бутстрап . начало ( Bootstrap . Java : 350 )
в орг . апач . каталина . запуск . Бутстрап . main ( Bootstrap . Java : 492 )
Вызванный: Java. яз. ClassNotFoundException : javax. XML. привязывать. JAXBContext
в орг . апач . каталина . погрузчик. WebappClassLoaderBase . loadClass ( WebappClassLoaderBase . java : 1328 )
в орг . апач . каталина . погрузчик. WebappClassLoaderBase . loadClass ( WebappClassLoaderBase . java : 1157 )
в Яве . база / Java . яз. Класс. forName0 ( Native Метод )
в Яве . база / Java . яз. Класс. forName ( Класс . Java : 398 )
в Яве . база / солнце . отражать. дженерики. завод. CoreReflectionFactory . makeNamedType ( CoreReflectionFactory . java : 114 )
, , , 59 Больше

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

  • Версия Java 7 : включена и работает
  • Версия Java 8 : включена и работает
  • Версия Java 9: устарела
  • Версия Java 10 : устарела
  • Версия Java 11: удалено
ЧИТАТЬ ТАКЖЕ:  Руководство по сервлету: начало работы с JSP - пример сервлета

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

добавить в pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< зависимость >
< groupId > ком . солнце. XML. bind < / groupId >
< artifactId > jaxbcore < / artifactId >
< версия > 2.3.0.1 < / версия >
< / зависимость >
< зависимость >
< groupId > javax . XML. bind < / groupId >
< artifactId > jaxbapi < / artifactId >
< версия > 2.3.1 < / версия >
< / зависимость >
< зависимость >
< groupId > ком . солнце. XML. bind < / groupId >
< artifactId > jaxbimpl < / artifactId >
< версия > 2.3.1 < / версия >
< / зависимость >

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

полный pom.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
< project xmlns = http://maven.apache.org/POM/4.0.0
xmlns : xsi = http://www.w3.org/2001/XMLSchema-instance
xsi : schemaLocation = http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd >
< modelVersion > 4.0.0 < / modelVersion >
< groupId > CrunchifyRESTfulServiceVersion < / groupId >
< artifactId > CrunchifyRESTfulServiceVersion < / artifactId >
< версия > 0.0.1SNAPSHOT < / версия >
< упаковка > война < / упаковка >
< build >
< sourceDirectory > src < / sourceDirectory >
< плагины >
< плагин >
< artifactId > mavenкомпиляторплагин < / artifactId >
< версия > 3.8.0 < / версия >
< конфигурация >
< release > 10 < / release >
< / configuration >
< / plugin >
< плагин >
< artifactId > mavenвойнаплагин < / artifactId >
< версия > 3.2.1 < / версия >
< конфигурация >
< warSourceDirectory > WebContent < / warSourceDirectory >
< / configuration >
< / plugin >
< / plugins >
< / build >
< зависимости >
< зависимость >
< groupId > ком . солнце. XML. bind < / groupId >
< artifactId > jaxbcore < / artifactId >
< версия > 2.3.0.1 < / версия >
< / зависимость >
< зависимость >
< groupId > javax . XML. bind < / groupId >
< artifactId > jaxbapi < / artifactId >
< версия > 2.3.1 < / версия >
< / зависимость >
< зависимость >
< groupId > ком . солнце. XML. bind < / groupId >
< artifactId > jaxbimpl < / artifactId >
< версия > 2.3.1 < / версия >
< / зависимость >
< / зависимости >
< / project >

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

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

Java 11 и Как исправить java.lang. TypeNotPresentException: введите javax.xml.bind.JAXBContext Exception?

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь