关于使用JavaMail发送邮件抛出java.lang.NoSuchMethodError: com.sun.mail.util.TraceInputStream.(Ljava异常的解决方法

时间:2021-07-05 12:04:35

我们在使用JavaMail时有可能会如下异常:

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

该异常是由jar包冲突引起的,在发送邮件的时候我们需要在pom文件中手动引入 javax.mail 包,此时如果在其它的jar中也包含该包的时候就会出现上述异常,我们只需要在maven中找到同样包含了 javax.mail 包的jar就行了,如图所示:关于使用JavaMail发送邮件抛出java.lang.NoSuchMethodError: com.sun.mail.util.TraceInputStream.<init>(Ljava异常的解决方法

然后只需要在对应的jar依赖的地方排除掉  javax.mail 包问题就解决了

 <exclusions>
<!-- 排除mail包冲突,避免发送邮件失败 -->
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mailapi</artifactId>
</exclusion>
</exclusions>