Was tun, wenn JavaMail nicht mit OpenJDK 11 oder höher verwendet werden kann?

Überblick

Nach dem Wechsel von OracleJDK 8 zu OpenJDK 11 löst JavaMail nun die folgende Ausnahme aus und kann überhaupt keine E-Mails senden.

java.lang.NoClassDefFoundError: javax/activation/DataSource
   (Abkürzung)
Caused by: java.lang.ClassNotFoundException: javax.activation.DataSource

Dieser Artikel zeigt Ihnen, wie Sie JavaMail mit OpenJDK 11 und höher verwenden.

Ursache der Ausnahme

JavaMail verwendet das Paket "java.activation" intern, jedoch in OpenJDK 11 und höher JEP 320: Entfernen der Java EE- und CORBA-Module. Paket wurde entfernt.

Aufgrund des Entfernens des Pakets "java.activation" kann die von JavaMail referenzierte Klasse nicht gefunden werden, und die in der Übersicht angezeigte Ausnahme tritt auf.

Ansatz

Sie können JavaMail verwenden, indem Sie das JavaBeans Activation Framework (https://mvnrepository.com/artifact/com.sun.activation/javax.activation) als "java.activation" -Paket verwenden.

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

Was tun, wenn JavaMail nicht mit OpenJDK 11 oder höher verwendet werden kann?
Was tun, wenn der Befehl adb nicht ausgeführt werden kann?
Was tun, wenn CentOS nicht mit VirtualBox unter Catalina gestartet werden kann?
Was tun, wenn das Laden der SPA-URL von WebView nicht erkannt werden sollte
Was tun, wenn der Rails-Server nicht gestoppt werden kann?
Was tun, wenn der Build mit dem Fehler "Mit Swift x.x.x kompiliertes Modul kann vom Swift x.x.x-Compiler nicht importiert werden" fehlschlägt.
Was tun, wenn Sie den Befehl "Java-Paketname / Klassenname" nicht ausführen können?
[Java] [Spring] Was tun, wenn Sie nach dem Kommentieren von Spring Security nicht automatisch mit Type Mismatch verdrahten können?
Was tun, wenn die Validierung mit der Aktualisierungsaktion nicht funktioniert?
Was tun, wenn Sie sich über OpenSSL mit pyenv install ärgern?
[Rails] Was tun, wenn Sie mit form_with keine Parameter abrufen können?
Was ist mit dem Fehler "Kann nicht gelesen werden oder ist keine gültige ZIP-Datei?" Zu tun
Was tun, wenn Sie Gemfile oder .bundle / directory nicht finden konnten?
Was tun, wenn der Server-Tomcat stirbt?
Was tun, wenn Sie falsche Informationen eingeben?
Was tun, wenn mvn archetype: generate fehlschlägt?
[Ubuntu] Was tun, wenn MongoDB aufgrund eines SocketException-Fehlers nicht gestartet werden kann?
[React.useRef] Was tun, wenn im Ereignis-Listener nicht auf den neuesten Status verwiesen werden kann?
Was tun, wenn die Annotation JSON Hint nicht mit Lombok und JSONIC funktioniert?
Was tun, wenn Android Studio sagt, dass "Ihre CPU vt-x oder svm nicht unterstützt"?
Was tun, wenn die Installation des Debug-Gems fehlschlägt?
Was tun, wenn der Rails-Server nicht gestartet werden kann?
Was tun, wenn beim Starten von Tomcat eine ClassNotFoundException auftritt?
Was tun, wenn TextToSpeech unter Android 11 nicht funktioniert?
Was tun, wenn Sie versehentlich ein Modell erstellen?
Was tun, wenn ein ActionController :: UnknownFormat-Fehler auftritt?
Was tun, wenn das Git-Repository nicht im Azure Team Explorer für Eclipse angezeigt werden kann?
Was tun, wenn Sie die Listen-Adresse im Einstellungsbildschirm des Dockers Mattermost ändern?
Was tun, wenn Sie Ruby mit rbenv installiert haben, die Version sich jedoch nicht ändert?
[Schienen] Was tun, wenn mit der Fehlermethode keine Fehlermeldung angezeigt wird?
Was tun, wenn in GlassFish eine java.io.IOException auftritt?
Was tun, wenn FacesMessage festgelegt, aber nicht angezeigt wird?
Was ist zu tun, wenn Ausdrucksoperatoren nicht auf die Methodenbindung angewendet werden können?
Was tun, wenn mysql2 einen Bundle-Installationsfehler erhält?
Was tun, wenn der Befehl Rails unbrauchbar wird?
Hinweise, was zu tun ist, wenn die Installation von Ubuntu 20.04 auf Virtual Box 6.1 (Windows 10) mit "Fehler 5 Eingabe- / Ausgabefehler" fehlschlägt.
Was tun, wenn Intel RST (Rapid Storage Technology) den Dual-Boot von Ubuntu20.04LTS und Windows10 stört?
Was tun, wenn während der automatischen Bereitstellung auf EC2 mit Capistrano ein SSH-Schlüsselauthentifizierungsfehler auftritt?
Was tun, wenn die App nicht mit der neuesten Rails-Version erstellt wurde, die bei neuen Rails installiert wurde?
Weil getSupportLoaderManager nicht verwendet werden kann
[Ubuntu 20.04] Was tun, wenn der externe Monitor nicht erkannt wird?
Was tun, wenn in Docker ein gcc-Fehler auftritt?
[Rails] Was tun, wenn keine Daten in der Datenbank registriert sind?
Was tun, wenn die Rails-Seite im Rails-Lernprogramm 1.3.2 nicht angezeigt wird?
Was tun, wenn Cloud 9 im Rails-Lernprogramm voll ist?
Hinweise, was zu tun ist, wenn das Eclipse Maven-Abhängigkeitsglas nicht korrekt ist
[Schienen] Was tun, wenn Schienen nicht reagieren oder nicht anhalten?
java.security.InvalidKeyException: Was ist zu tun, wenn die Schlüsselgröße oder die Standardparameter unzulässig sind?
[Logback] Was tun, wenn unnötige Dateien während der Rotation nicht verschwinden?
Was tun, wenn Sie Ihr Root-Passwort unter CentOS7 vergessen haben?