Beachten Sie, dass Systemeigenschaften einschließlich JAXBContext in Java11 nicht verwendet werden können

Es hat lange gedauert und es war ziemlich schwierig, also habe ich ein Memorandum gemacht.

Während der Entwicklung war die Rede davon, die Java-Version eines Projekts, das bisher funktionierte, auf 11 zu aktualisieren.

Zusammenfassend blieb ich mit einem endlosen Fehler stecken, der eine Nachricht wie die folgende enthielt.

JAXBContext cannot be resolved The import javax.xml.bind cannot be resolved

Es gab andere Fehler, aber der Punkt ist, dass die zuvor verwendeten Bibliotheken wie javax.xml.bind plötzlich unbrauchbar wurden.

Umgebung

Java11(jdk-11.0.1) Spring Tool Suite 3.9.6.RELEASE

Lösungen

Fügen Sie pom.xml Folgendes hinzu

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>2.3.0</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>javax.activation-api</artifactId>
    <version>1.2.0</version>
</dependency>

Sie müssen eine Bibliothek vorbereiten, die angeblich fehlt.

Versionshinweise für Oracle JDK 11

In den JDK 11-Versionshinweisen von Oracle befand sich ein Element mit dem Namen "Entfernte Funktionen und Optionen". Es scheint, dass einige Systemeigenschaften von Java 11 nicht verfügbar sind.

↓ Kopieren Sie den Bereich, der mit Ihnen in Verbindung stand. (Die Bibliothek, in der das Defizit wütend war)

In addition, the following system properties are no longer applicable due to the the removal of the Java EE and CORBA modules:

com.sun.xml.internal.ws.client.ContentNegotiation com.sun.xml.internal.ws.legacyWebMethod javax.xml.bind.context.factory javax.xml.bind.JAXBContext javax.xml.soap.MetaFactory javax.xml.ws.spi.Provider jaxb.fragment jaxb.noNamespaceSchemaLocation jaxb.schemaLocation jaxb.formatted.output jaxb.encoding

Die ganze Geschichte ist im Release Note geschrieben.

■ Versionshinweis https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html

■ Funktionen und Optionen entfernt https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html#Removed

Es fehlen noch viele andere Dinge wie mail.mime.

Das Projekt, das die gelöschte Bibliothek bisher verwendet hat, war, dass beim Aktualisieren auf Java 11 ohne Vorbereitung natürlich ein Fehler auftritt.

Referenz

Eine Seite, die ich bei der Suche gefunden habe, um den obigen Fehler zu beheben (ich kannte die Ursache zu diesem Zeitpunkt nicht).

https://stackoverflow.com/questions/43574426/how-to-resolve-java-lang-noclassdeffounderror-javax-xml-bind-jaxbexception-in-j

https://github.com/authzforce/restful-pdp/issues/4

Recommended Posts

Beachten Sie, dass Systemeigenschaften einschließlich JAXBContext in Java11 nicht verwendet werden können
Bitte beachten Sie, dass Spring Boot + Tomcat 8.5.8 nicht verwendet werden kann!
Zusammenfassung von ORM "uroboroSQL", das in Enterprise Java verwendet werden kann
Java-Code, der nicht von Kotlin verwendet werden kann (für interne Lernsitzungen)
Warum der Klassenvergleich vom Typ Java String (==) nicht verwendet werden kann
Technologie-Auszug, mit dem EC-Sites in Java-Schulungen erstellt werden können
Überprüfen Sie mit Java / Kotlin, ob Dateien unter Windows nicht in die Benutzerkontensteuerung geschrieben werden können
Schreiben einer Klasse, die in Java bestellt werden kann Ein kleines Standard-Memo
Praktische Tastenkombinationen für Eclipse
Syntax- und Ausnahmebedingungen, die beim Vergleich mit null in Java verwendet werden können
[Java 8] Sortiermethode in alphabetischer Reihenfolge und Reihenfolge der Zeichenkettenlänge, die für Codierungstests verwendet werden kann
[Java] Es scheint, dass Sie nicht "0 <hoge <10" in den bedingten Ausdruck der "if" -Anweisung schreiben können.
Der Fall, dass @Autowired in JUnit5 nicht verwendet werden konnte
Java (Super Beginner Edition), das in 180 Sekunden verstanden werden kann
Java 14 neue Funktionen, mit denen Code geschrieben werden kann
[Rails] Probleme, die mit devise nicht registriert / angemeldet werden können
Weil getSupportLoaderManager nicht verwendet werden kann
Problem beim Finden von javax.annotation.Generated in Java 11 nicht
Java Stream kann nicht wiederverwendet werden.
Referenznotiz / In-Memory-LDAP-Server, der in Java eingebettet werden kann
Statisches Analysetool, das mit GitHub verwendet werden kann [Java-Version]
Textdateien, die in Ressourcen in Java abgelegt sind, können nicht gelesen werden, wenn sie beschädigt sind
SwiftUI-Ansicht, die in Kombination mit anderen Frameworks verwendet werden kann
Es scheint, dass Java 14 Datenklassen-ähnliche Funktionen hinzufügen wird
[Swift] Beachten Sie, dass TableView nicht nur bestimmte Zellen löschen kann
[Java 8] Bis zur Konvertierung von Standardeingaben, die beim Codieren von Tests verwendet werden können, in eine Liste oder ein Array
CentOS7 VirtualBOX yum kann nicht verwendet werden
Java-Versionsnotation, die sich in Java 10 ändert
Lesen Sie die Java-Eigenschaftendatei in C #
Java kann unter Ubuntu 13.04 nicht installiert werden
Eingabe / Ausgabe von Java-Dateien, die über den historischen Hintergrund verwendet werden können
Die Geschichte, dass das Servlet nicht in die Java-Webanwendung geladen werden konnte
[Android Studio] Beschreibung, die kontinuierlich in die SQLite-Datenbank eingegeben werden kann [Java]
[Java] Variablen, die innerhalb der `for-Anweisung` deklariert sind, können nicht außerhalb des` for-Anweisungsblocks` verwendet werden