java.lang.ClassNotFoundException: com.sun.mail.util.MessageRemovedIOException

java.lang.ClassNotFoundException: com.sun.mail.util.MessageRemovedIOException

将应用程序从 jdk6 升级到 jdk8 时,我们在 Message msg = new MimeMessage(session);

上收到以下错误
 SEVERE: Servlet.service() for servlet [default] in context with path [] threw exception [java.lang.reflect.InvocationTargetException] with root cause
java.lang.ClassNotFoundException: com.sun.mail.util.MessageRemovedIOException
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)

有没有人在升级 java 应用程序时遇到过相同或相关的问题?

编辑:相同的代码适用于 java6.

您的类路径中混合了来自不同版本 JavaMail 的 JavaMail 类。您使用的是什么应用程序服务器,您的 Web 应用程序的 lib 目录中有什么?

我用过这个并且有效:

<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.5</version>
</dependency>

我遇到了类似的问题。我正在使用 Maven 依赖项来 配置外部库。

问题已通过从新的 maven 存储库切换来解决 对于 Java 邮件 Api,到旧的 Maven 存储库

新存储库(引发异常): javax.mail javax.mail-api 1.5.5

旧存储库(工作正常): javax.mail 邮件 1.4

我不知道为什么使用旧存储库有效,而使用新存储库却不行。如果有人能澄清这一点就太好了。