Java 11 und wie man java.lang repariert. TypeNotPresentException: Ausnahme vom Typ javax.xml.bind.JAXBContext?

Veröffentlicht: 2018-12-15

Java11- und javax.xml.bind.JAXBContext-Ausnahme

Stehen Sie vor java.lang.TypeNotPresentException : Typ javax.xml.bind.JAXBContext Ausnahme nicht vorhanden ?

Als ich heute meinen RESTful-Dienst auf meinem Eclipse ausführte, bemerkte ich den Fehler javax.xml.bind.JAXBContext in meiner Eclipse-Konsole. Das gleiche Programm lief seit letztem Jahr ohne Probleme einwandfrei.

Ich fing an, über die Veränderungen nachzudenken, die in meiner lokalen Umgebung passierten. Seit letztem Jahr hat kein Code-Check-in mehr stattgefunden, also dachte ich, dass es hauptsächlich an meinem letzten Java 11-Upgrade liegt.

Wie Sie in meinem vorherigen Alles über Java 11 sehen, gibt es darin keine Unterstützung mehr für Java EE-Module. Java 11 entfernte die Unterstützung für java.xml.bind – das die Java Architecture for XML Binding (JAXB) API definiert.

Her ist ein vollständiger Stack-Trace:

Und das ist der Grund, warum ich angefangen habe, über die Ausnahme zu kommen. Das Java 11-Paket für javax.xml.bind existiert nicht mehr.

  • Java 7-Version: Enthalten und funktioniert
  • Java 8-Version: Enthalten und funktioniert
  • Java 9-Version: Veraltet
  • Java 10-Version: Veraltet
  • Java 11-Version: Entfernt

Um dieses Problem zu beheben, müssen Sie die folgenden JAXB-Maven-Abhängigkeiten manuell zu Ihrem Projekt hinzufügen.

Hier ist meine vollständige pom.xml-Datei, falls erforderlich:

Versuchen Sie, Ihr Eclipse-Projekt zu bereinigen, und versuchen Sie erneut, Ihren Tomcat-Server auszuführen. Sie sollten dieses Problem nicht mehr sehen.

Viel Spaß beim Programmieren und lassen Sie mich wissen, ob Sie nach dem Hinzufügen der oben genannten Maven-Abhängigkeiten immer noch mit dieser Ausnahme konfrontiert sind.