gpt4 book ai didi

java.lang.NoSuchMethodError : com. sun.mail.util.TraceInputStream

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:08 28 4
gpt4 key购买 nike

我正在尝试通过 Java Mail API 发送电子邮件,它在我的笔记本电脑上运行良好。当我在 Heroku 中做同样的事情时,我得到了这个:

java.lang.NoSuchMethodError: com.sun.mail.util.TraceInputStream.(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 ...

这是我在 pom.xml 中的内容:

    <dependency>
<groupId>javax.mail</groupId>
<artifactId>mailapi</artifactId>
<version>1.4.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.3</version>
<scope>runtime</scope>
</dependency>

我猜在 Heroku JDK 中还有另一个版本的 Java Mail API,它没有这个构造函数...这怎么解决?

最佳答案

默认情况下,在最新的 Heroku 堆栈上运行的 Java 应用程序使用 OpenJDK 8。

您的问题似乎与实际的 JVM 实现无关,而是由于类路径中缺少 smtp-1.5.1.jar。为确保正确加载 TraceInputStream,试试这个:

java.net.URL classUrl = this.getClass().getResource("com.sun.mail.util.TraceInputStream");
out.println(classUrl.getFile());

关于java.lang.NoSuchMethodError : com. sun.mail.util.TraceInputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30156048/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com