关于使用JavaMail发送邮件抛出java.lang.NoSuchMethodError: com.sun.mail.util.TraceInputStream.<init>(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>

猜你喜欢

转载自www.cnblogs.com/yanwu0527/p/11796690.html