java - ClassNotFoundException com.sun.mail.util.SharedByteArrayInputStream

标签 java jakarta-mail

当我部署的系统发送电子邮件时,我收到以下错误。

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/

相关文章:

java - 使用 jxl for java 指定 WritableHyperlink 的单元格格式

java - Lombok 的 @Builder/@AllArgsConstructor 如何调用自定义构造函数?

java - 发送邮件错误,javax.mail.MessagingException : Could not connect to SMTP host: localhost, port: 25;

java - 使用 javamail api 提取嵌套的 .msg 附件

jakarta-mail - 如何使用 javax 邮件 API 在 java 中创建 .msg 文件

java - Android 应用程序无法通过移动数据连接到服务器

java - org.postgresql.*;类未找到错误

javafx:在编辑期间将 ChoiceBox 附加到 TableColumn 上的 TableCell

java - 如何使用 javax.mail 将消息作为附件添加到另一条消息上

java - 将消息附加到 MaildirFolder 时出现 FileNotFoundException