本文介紹了將jakarta.mail 1.6.5更新到2.0.1的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在嘗試從JakartaMail 1.6.5遷移到2.0.1,當我啟動我的應用程序時,我收到了
Caused by: java.lang.ClassNotFoundException: javax.mail.internet.AddressException
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1364)
我也嘗試更改:
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
至
import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
但是,當我使用Spring類的JavaMailSenderImpl mailSender
時:
MimeMessage message = mailSender.createMimeMessage();
上面寫著:
Required type:
jakarta.mail.internet.MimeMessage
Provided:
javax.mail.internet.MimeMessage
我如何才能解決這個問題?Spring是否支持JakartaMail 2.0.1?因為Java MailSender處于Spring-Context-Support(我使用5.3.9版)
JakartaMail
問題是推薦答案2.x切換到新的jakarta.mail
命名空間。因此,基于早期版本的JakartaMail/JavaMail構建的庫將無法按照它們預期的javax.mail
命名空間工作。
Spring仍然使用javax.mail
名稱空間,因此不能與JakartaMail 2.x結合使用。實際上,當前Spring框架的Main是針對com.sun.mail:javax.mail:1.6.2
/javax.mail:javax.mail-api:1.6.2
編譯的(參見build.gradle
)。
目前,如果您想使用Spring,則需要使用JakartaMail 1.6.7或更早版本。據我所知,1.6.7版和2.0.1版是相同的(或者幾乎相同的),只是命名空間不同。
根據Support for Jakarta EE 9 (annotations and interfaces in jakarta.* namespace),Spring將切換到使用Spring Framework6/Spring Boot 3中的jakarta.*
命名空間。
這篇關于將jakarta.mail 1.6.5更新到2.0.1的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,