当我部署的系统发送电子邮件时,我收到以下错误。
Caused by: java.lang.NoClassDefFoundError: com/sun/mail/util/SharedByteArrayInputStream
....
....
Caused by: java.lang.ClassNotFoundException: com.sun.mail.util.SharedByteArrayInputStream
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass
我正在使用:
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.1</version>
</dependency>
这在过去一年中一直有效,现在突然抛出此异常。我更改了 javax.mail
等的任何版本。
我尝试将 javax.mail:mail:jar:1.5.0
添加到依赖项中,但在编译时出现错误,指出该 jar 是非法的。 Maven 给出以下错误:请为 JavaMail 使用正确的工件。您应该使用 com.sun.mail:javax.mail...
& Found Banned Dependency: javax.mail:mail:jar:1.5.0
对我来说奇怪的是 javax.mail.internet.MimeMessage
有以下导入:
import com.sun.mail.util.*;
import javax.mail.util.SharedByteArrayInputStream;
因此,在创建 MimeMessage
时出现此错误似乎很奇怪,因为它试图获取 com.sun.mail.util.SharedByteArrayInputStream
而不是 >javax.mail.util.SharedByteArrayInputStream
。
我知道类似的问题已经发布,但答案似乎总是使用我已经在使用的 javax.mail.jar
。
最佳答案
听起来您的类路径上某处有一个非常旧版本的 javax.mail 类。您确定那里没有 j2ee.jar 或 javaee.jar 吗?查看 javax.mail 类的所有 jar 文件。
关于java - ClassNotFoundException com.sun.mail.util.SharedByteArrayInputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44739269/