Java 11 i Jak naprawić java.lang. TypeNotPresentException: Wpisz javax.xml.bind.JAXBContext Exception?

Opublikowany: 2018-12-15

Wyjątek Java11 i javax.xml.bind.JAXBContext

Czy masz do czynienia z java.lang.TypeNotPresentException : wpisz javax.xml.bind.JAXBContext nie występuje wyjątek?

Dzisiaj podczas uruchamiania usługi RESTful na moim Eclipse zauważyłem błąd javax.xml.bind.JAXBContext w konsoli Eclipse. Ten sam program działał bez zarzutu od zeszłego roku.

Zacząłem myśleć o zmianach, jakie zaszły w moim lokalnym środowisku. Od zeszłego roku nie było żadnego sprawdzania kodu, więc pomyślałem, że to głównie z powodu mojej ostatniej aktualizacji Javy 11.

Jak widać w moim poprzednim Wszystko o Javie 11, nie ma już w nim wsparcia dla modułów Java EE. Java 11 usunęła obsługę java.xml.bind — która definiuje interfejs API Java Architecture for XML Binding (JAXB).

Ona jest kompletnym śladem stosu:

I to jest powód, dla którego zacząłem wychodzić poza wyjątek. Pakiet Java 11 dla javax.xml.bind już nie istnieje.

  • Wersja Java 7: dołączona i działająca
  • Wersja Java 8: dołączona i działająca
  • Wersja Java 9: ​​przestarzała
  • Wersja Java 10: przestarzała
  • Wersja Java 11: usunięta

Aby rozwiązać ten problem, musisz ręcznie dodać poniższe zależności JAXB Maven do swojego projektu.

Oto mój kompletny plik pom.xml, jeśli jest wymagany:

Spróbuj wyczyścić projekt Eclipse i ponownie uruchomić serwer Tomcat. Nie powinieneś już widzieć tego problemu.

Miłego kodowania i daj mi znać, jeśli po dodaniu powyższych zależności Maven nadal napotykasz ten wyjątek.