java.lang.NoClassDefFoundError:无法初始化类org.springframework.mail.javamail.SmartMimeMessage

阿什瓦尼·库玛(Ashwani kumar)

从Java Web项目发送电子邮件时出现错误提示。
IDE:Eclipse
Java版本:openjdk版本“ 1.8.0_212-3-redhat”
春季版本:5.1.6.RELEASE

java.lang.NoClassDefFoundError: Could not initialize class org.springframework.mail.javamail.SmartMimeMessage
at org.springframework.mail.javamail.JavaMailSenderImpl.createMimeMessage(JavaMailSenderImpl.java:340)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:373)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:365)

以下是过滤后的邮件依赖树
在此处输入图片说明


我尝试了以下方法:

  • Maven安装
  • 删除了现有的tomcat服务器,并在eclipse中添加了新服务器。
  • 更改了Maven的本地存储库以下载新的依赖项。
  • 从Eclipse工作区中删除项目,并删除所有Eclipse设置和配置文件/文件夹,然后重新导入现有的Maven项目
  • org.springframework.mail.javamail.SmartMimeMessagespring-context-support-5.1.6.RELEASE.jarat项目资源管理器以及文件系统中检查
    在此处输入图片说明

注意:这是一个有效的代码,但突然我现在收到此错误。
项目中没有编译错误,战争也能够成功地部署在服务器上。

阿什瓦尼·库玛(Ashwani kumar)

以下罐子之间存在程序包和类名冲突:

  • jakarta.mail-api.jar
  • javax.mail-api.jar

Problem cause:
Both jars will be part of the build and all classes will be added to the classpath.
Now the classes at the mercy of class load order and causing different version than expected.

What triggers the problem:
I have run the maven with force update of Snapshots/Releases
Now the latest version 4.10.0 of the following dependency has jakarta.mail-api.jar as an internal dependency.

<dependency>
    <groupId>com.google.api-ads</groupId>
    <artifactId>ads-lib</artifactId>
    <version>RELEASE</version>
</dependency> 

Solution: Use only one jar. In may case javax.mai-api.jar
What to change: I have added the exclusion for the jakarta.mail-api.jar in pom.xml

<dependency>
    <groupId>com.google.api-ads</groupId>
    <artifactId>ads-lib</artifactId>
    <version>RELEASE</version>
    <exclusions>
        <exclusion>
            <groupId>jakarta.mail</groupId>
            <artifactId>jakarta.mail-api</artifactId>
        </exclusion>
    </exclusions>
</dependency>

关键学习点:在pom.xml中使用Release / Snapshot版本会导致依赖项冲突和问题,例如NoClassDefFoundError如果您使用强制更新Snapshots / Releases的方式运行Maven

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

java.lang.NoClassDefFoundError:无法初始化类org.powermock.modules.junit4.rule.PowerMockRule

java.lang.NoClassDefFoundError:无法初始化类javax.media.jai.JAI

java.lang.NoClassDefFoundError:无法初始化类org.bytedeco.javacpp.avutil

无法自动连线org.springframework.mail.javamail.JavaMailSender

java.lang.NoClassDefFoundError:org / springframework / security / authentication / AuthenticationManager

java.lang.NoClassDefFoundError:无法初始化类java.awt.Toolkit

java.lang.NoClassDefFoundError:无法初始化类XXX

java.lang.NoClassDefFoundError:org / springframework / web / util / UriTemplateHandler

java.lang.NoClassDefFoundError:org / springframework / web / util / UriTemplateHandler

原因:java.lang.NoClassDefFoundError:无法初始化类com.jayway.restassured.RestAssured

java.lang.NoClassDefFoundError:org / springframework / beans / factory / config / EmbeddedValueResolver

java.lang.NoClassDefFoundError:org / springframework / core / io /资源异常

java.lang.NoClassDefFoundError:org / springframework / core / JdkVersion

java.lang.NoClassDefFoundError:org / springframework / core / env / ConfigurableEnvironment

java.lang.NoClassDefFoundError:无法初始化类xxx.xxx.xxx.HibernateUtil

java.lang.NoClassDefFoundError:org / springframework / context / ApplicationContext maven

春季:java.lang.NoClassDefFoundError:无法初始化类

java.lang.NoClassDefFoundError:org / springframework / beans / factory / Aware

java.lang.NoClassDefFoundError:无法初始化com.datastax.driver.core.Cluster类

Zeppelin java.lang.NoClassDefFoundError:无法初始化类org.apache.spark.rdd.RDDOperationScope $

关于java.lang.NoClassDefFoundError:无法初始化类org.xerial.snappy.Snappy

java.lang.NoClassDefFoundError:org / springframework / core / ResolvableType

java.lang.NoClassDefFoundError:无法初始化类org.apache.commons.logging.LogFactory

java.lang.NoClassDefFoundError:org / springframework / expression / BeanResolver

java.lang.NoClassDefFoundError:org / springframework / web / context / ContextCleanupListener问题

java.lang.NoClassDefFoundError:org / springframework / web / client / ResponseErrorHandler

线程“主”中的异常java.lang.NoClassDefFoundError无法初始化类org.bytedeco.javacpp.avutil

没有'org.springframework.mail.javamail.JavaMailSender'类型的合格bean - Spring MVC

获取 java.lang.NoClassDefFoundError: org/springframework/transaction/interceptor/TransactionInterceptor

TOP 榜单

热门标签

归档