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.
Java11(jdk-11.0.1) Spring Tool Suite 3.9.6.RELEASE
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.
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.
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