Java11とjava.langの修正方法。 TypeNotPresentException:タイプjavax.xml.bind.JAXBContext例外?

公開: 2018-12-15

Java11およびjavax.xml.bind.JAXBContext例外

java.lang.TypeNotPresentExceptionに直面しています:タイプjavax.xml.bind.JAXBContext not present例外?

今日、EclipseでRESTfulサービスを実行しているときに、Eclipseコンソールでjavax.xml.bind.JAXBContextエラーに気づきました。 同じプログラムは昨年から問題なく完全に正常に実行されていました。

私は自分の地域の環境に起こった変化について考え始めました。 昨年からコードチェックインは行われていなかったので、主に最新のJava11アップグレードが原因だと思いました。

以前の「Java11に関するすべて」で見たように、JavaEEモジュールはサポートされなくなりました。 Java 11は、 java.xml.bindのサポートを削除しました。これは、Java Architecture for XML Binding(JAXB)APIを定義します。

彼女は完全なスタックトレースです:

そして、それが私が例外を超え始めた理由です。 javax.xml.bind用のJava11パッケージはもう存在しません。

  • Java 7バージョン:含まれ、機能している
  • Java 8バージョン:含まれ、機能している
  • Java 9バージョン:非推奨
  • Java 10バージョン:非推奨
  • Java 11バージョン:削除

この問題を修正するには、以下のJAXBMaven依存関係をプロジェクトに手動で追加する必要があります。

必要に応じて、完全なpom.xmlファイルを次に示します。

Eclipseプロジェクトをクリーンアップして、Tomcatサーバーを再度実行してみてください。 この問題はもう発生しないはずです。

コーディングを楽しんでください。上記のMaven依存関係を追加した後も、この例外が発生する場合はお知らせください。