Cela a pris du temps et c'était assez difficile, alors j'ai rédigé une note.
Pendant le développement, il a été question de mettre à jour la version Java d'un projet qui fonctionnait jusqu'à présent vers la version 11.
En conclusion, je suis resté coincé avec une erreur sans fin contenant un message comme celui ci-dessous.
JAXBContext cannot be resolved The import javax.xml.bind cannot be resolved
Il y a eu d'autres erreurs, mais le fait est que les bibliothèques précédemment utilisées telles que javax.xml.bind sont soudainement devenues inutilisables.
Java11(jdk-11.0.1) Spring Tool Suite 3.9.6.RELEASE
Ajoutez ce qui suit à pom.xml
<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>
Vous devez préparer une bibliothèque qui serait manquante.
Les notes de mise à jour du JDK 11 d'Oracle contenaient un élément appelé Fonctionnalités et options supprimées. Il semble que certaines propriétés système ne seront pas disponibles à partir de Java 11.
↓ Copiez la zone qui vous était liée. (La bibliothèque où le déficit était en colère)
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
Toute l'histoire est écrite dans la note de publication.
■ Note de publication https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html
■ Fonctionnalités et options supprimées https://www.oracle.com/technetwork/java/javase/11-relnote-issues-5012449.html#Removed
Il y a beaucoup d'autres choses comme mail.mime manquant.
Le projet qui utilisait la bibliothèque supprimée jusqu'à présent était que si vous mettez à jour vers Java 11 sans préparation, une erreur se produira naturellement.
Une page que j'ai trouvée en cherchant à résoudre l'erreur ci-dessus (je ne connaissais pas la cause à ce moment-là)
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