關於使用JavaMail發送郵件拋出java.lang.NoSuchMethodError: com.sun.mail.util.TraceInputStream. (Ljava異常的解決方法


我們在使用JavaMail時有可能會如下異常:

1 Exception in thread "main" java.lang.NoSuchMethodError: com.sun.mail.util.TraceInputStream.<init>(Ljava/io/InputStream;Lcom/sun/mail/util/MailLogger;)V
2     at com.sun.mail.smtp.SMTPTransport.initStreams(SMTPTransport.java:2014)
3     at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1936)
4     at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
5     at javax.mail.Service.connect(Service.java:291)
6     at javax.mail.Service.connect(Service.java:172)
7     at javax.mail.Service.connect(Service.java:192)

該異常是由jar包沖突引起的,在發送郵件的時候我們需要在pom文件中手動引入 javax.mail 包,此時如果在其它的jar中也包含該包的時候就會出現上述異常,我們只需要在maven中找到同樣包含了 javax.mail 包的jar就行了,如圖所示:

 

 然后只需要在對應的jar依賴的地方排除掉  javax.mail 包問題就解決了

1 <exclusions>
2     <!-- 排除mail包沖突,避免發送郵件失敗 -->
3     <exclusion>
4         <groupId>javax.mail</groupId>
5         <artifactId>mailapi</artifactId>
6     </exclusion>
7 </exclusions>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM