Après être passé d'OracleJDK 8 à OpenJDK 11, JavaMail lève désormais l'exception suivante et ne peut plus envoyer de courrier du tout.
java.lang.NoClassDefFoundError: javax/activation/DataSource
(Abréviation)
Caused by: java.lang.ClassNotFoundException: javax.activation.DataSource
Cet article vous montrera comment utiliser JavaMail avec OpenJDK 11 et supérieur.
JavaMail utilise le package java.activation
en interne, mais dans OpenJDK 11 et versions ultérieures, JEP 320: Remove the Java EE and CORBA Modules Le package a été supprimé.
En raison de la suppression du package java.activation
, la classe référencée par JavaMail est introuvable et l'exception indiquée dans l'aperçu se produit.
Vous pouvez utiliser JavaMail en utilisant JavaBeans Activation Framework (https://mvnrepository.com/artifact/com.sun.activation/javax.activation) comme package java.activation
.
Maven
<!-- https://mvnrepository.com/artifact/com.sun.activation/javax.activation -->
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
<version>1.2.0</version>
</dependency>
Gradle
// https://mvnrepository.com/artifact/com.sun.activation/javax.activation
compile group: 'com.sun.activation', name: 'javax.activation', version: '1.2.0'
Recommended Posts