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

我们在使用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就行了,如图所示:

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

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值