首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoSuchMethodException在春季启动时发送电子邮件

NoSuchMethodException在春季启动时发送电子邮件
EN

Stack Overflow用户
提问于 2021-05-21 08:46:05
回答 1查看 290关注 0票数 0

我有与Gradle一起的spring引导应用程序。

这是我的依赖关系

代码语言:javascript
复制
dependencies {
    compile('javax.xml.bind:jaxb-api:'+ jaxbVersion)
    compile('org.apache.xmlgraphics:fop:' + apacheFOPVersion)
    compile('com.amazonaws:aws-java-sdk-s3:' + amazonS3Version)
    compile('org.apache.commons:commons-lang3:' + commonsLangVersion)
    compile('commons-fileupload:commons-fileupload:' + commonsFileUploadVersion)
    compile('org.springframework:spring-test:4.3.13.RELEASE')
    compile('net.authorize:anet-java-sdk:' + anetSDKVersion)
    compile('org.springframework.boot:spring-boot-starter-web')
    compile('io.springfox:springfox-swagger2:' + swaggerUiVersion)
    compile('io.springfox:springfox-swagger-ui:' + swaggerUiVersion)
    compile('org.springframework.boot:spring-boot-starter-data-redis')
    compile('org.springframework.boot:spring-boot-starter-data-mongodb')
    compile('org.springframework.cloud:spring-cloud-security')
    compile('org.springframework.cloud:spring-cloud-starter-config')
    compile('org.springframework.cloud:spring-cloud-starter-security')
    compile('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')
    compile('org.springframework.security.oauth:spring-security-oauth2')
    compile('org.springframework.cloud:spring-cloud-starter-openfeign')
    compile files('../models/build/libs/quickboard.models-' + modelsVersion + '.jar')
    testCompile('org.springframework.boot:spring-boot-starter-test')
    compile("com.intuit.quickbooks-online:ipp-v3-java-data:3.0.0")
    compile(group: 'com.intuit.quickbooks-online', name: 'ipp-v3-java-devkit', version: '3.0.5', classifier: 'jar-with-dependencies')
            {
                exclude group: 'javax.mail', module: 'mailapi'
            }
    compile(group: 'com.intuit.quickbooks-online', name: 'oauth2-platform-api', version: '3.0.5', classifier: 'jar-with-dependencies')
            {
                exclude group: 'javax.mail', module: 'mailapi'
            }
    compile group: 'com.ecwid', name: 'maleorang', version: '3.0-0.9.6'
    compile group: 'com.sun.mail', name: 'javax.mail', version: '1.5.0'
    compileOnly 'org.projectlombok:lombok:1.18.4'

}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

configurations {
    all*.exclude group: 'javax.mail'
}

这是我发送电子邮件的代码

代码语言:javascript
复制
Message msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress("myemail@domain.com"));
            msg.addRecipient(Message.RecipientType.TO,
                    new InternetAddress(toEmail, emailSubject));

            msg.setSubject(emailSubject);
//            msg.setText(message);
            msg.setContent(message, "text/html; charset=utf-8");
            Transport.send(msg);

Transport.send(msg);行上,我得到了异常

代码语言:javascript
复制
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:2016) ~[javax.mail-1.5.0.jar:1.5.0]
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1936) ~[javax.mail-1.5.0.jar:1.5.0]
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654) ~[javax.mail-1.5.0.jar:1.5.0]
    at javax.mail.Service.connect(Service.java:313) ~[ipp-v3-java-devkit-3.0.5-jar-with-dependencies.jar:na]
    at javax.mail.Service.connect(Service.java:172) ~[ipp-v3-java-devkit-3.0.5-jar-with-dependencies.jar:na]
    at javax.mail.Service.connect(Service.java:121) ~[ipp-v3-java-devkit-3.0.5-jar-with-dependencies.jar:na]
    at javax.mail.Transport.send0(Transport.java:190) ~[ipp-v3-java-devkit-3.0.5-jar-with-dependencies.jar:na]
    at javax.mail.Transport.send(Transport.java:120) ~[ipp-v3-java-devkit-3.0.5-jar-with-dependencies.jar:na]

我阅读了有关此异常的每一个主题,大多数情况下,一些依赖项包含了mailapi依赖的旧版本,并且在我的build.gradle中也添加了这种排除。我正在检查Intellij 中的依赖树(编译时间和运行时),只有jaxa.mail依赖(我在build.gradle中有)--其他任何依赖项都不包括它,但我仍然得到这个异常。

你还有什么其他建议吗?我应该尝试什么?可能的理由是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-21 11:50:05

我刚刚将依赖项compile group: 'com.sun.mail', name: 'javax.mail', version: '1.5.0'降级为compile group: 'com.sun.mail', name: 'javax.mail', version: '1.4.5',它现在起作用了,看起来也没有必要将mailapi从依赖项中排除出来,并且

代码语言:javascript
复制
configurations {
    all*.exclude group: 'javax.mail'
} 

在不包括这些代码的情况下,代码工作正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67633570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档