java.lang.NoClassDefFoundError: javax/mail/MessagingException unsolved
java.lang.NoClassDefFoundError: javax/mail/MessagingException unsolved
我正在尝试将 javax.mail jar 添加到我的类路径中,但出现此错误:
java.lang.NoClassDefFoundError: javax/mail/MessagingException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2663)
at java.lang.Class.getDeclaredConstructors(Class.java:2012)
at org.springframework.beans.factory.annotation.
我在其他 post 中读到可以通过向 pom.xml 添加依赖项来修复它,所以我做到了:
pom.xml
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.3</version>
</dependency>
但我仍然收到错误..有人可以帮我解决这个问题吗?
Java 邮件API 的最新版本是
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.2</version>
</dependency>
你用这个版本有同样的错误吗?
javax/mail/MessagingException
版本 1.4 中已经存在。所以我想这只是 IDE 中的一个装配问题。刷新 pom 依赖项并检查 IDE 构建的工件应该就足够了。
另外,在 1.4.3 版本中,不再有名为 mail 的工件 ID。如果你想使用 1.4.3,你应该使用这个依赖项
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mailapi</artifactId>
<version>1.4.3</version>
</dependency>
这个 class 在我使用过的所有版本的 Javamail 中都存在。很明显,您的 CLASSPATH 上没有 Javamail JAR,对于任何其他 ClassNotFoundException。
您使用 maven 混合了类路径,并在 eclipse 中手动添加了引用。
禁用 "maven nature" 在命令行上 mvn eclipse:clean
刷新您的项目并 convert it to maven project
然后重试。
澄清一下:你把邮件api添加到pom的什么地方了?在 <dependecies>
或 <dependecyManagement
之下?
您应该将 jar 添加到服务器 Tomcat。
打开启动配置
添加外部 jar(查找您的电子邮件 jar)
甚至我也遇到了类似的错误。尝试以下 2 个步骤(这里已经推荐了第一个步骤)-
1. 将依赖项添加到 pom.xml
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.3</version>
</dependency>
- 如果这不起作用,请手动将
jar
文件放入您的 .m2\repository\javax\<folder>\<version>\
目录。
您将使用maven-dependency-plugin
将项目依赖项复制到其他地方。
将此添加到 pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.mkyong.core.App</mainClass>
<classpathPrefix>dependency-jars/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/dependency-jars/
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
将生成以下清单文件。项目依赖项将被复制到 {project}/target/dependency-jars/.
manifest-Version: 1.0
Built-By: mkyong
Build-Jdk: 1.6.0_35
Class-Path: dependency-jars/log4j-1.2.17.jar
Created-By: Apache Maven
Main-Class: com.mkyong.core.App
Archiver-Version: Plexus Archiver
这对我有用。
资料来源:MKyong.com
我在 javax.mail.Activator class 中遇到了类似的问题。解决方案已从 war javax.mail 和 javax.activation 中删除并将其添加到 {tomcat}\lib 文件夹
我正在尝试将 javax.mail jar 添加到我的类路径中,但出现此错误:
java.lang.NoClassDefFoundError: javax/mail/MessagingException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2663)
at java.lang.Class.getDeclaredConstructors(Class.java:2012)
at org.springframework.beans.factory.annotation.
我在其他 post 中读到可以通过向 pom.xml 添加依赖项来修复它,所以我做到了:
pom.xml
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.3</version>
</dependency>
但我仍然收到错误..有人可以帮我解决这个问题吗?
Java 邮件API 的最新版本是
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.2</version>
</dependency>
你用这个版本有同样的错误吗?
javax/mail/MessagingException
版本 1.4 中已经存在。所以我想这只是 IDE 中的一个装配问题。刷新 pom 依赖项并检查 IDE 构建的工件应该就足够了。
另外,在 1.4.3 版本中,不再有名为 mail 的工件 ID。如果你想使用 1.4.3,你应该使用这个依赖项
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mailapi</artifactId>
<version>1.4.3</version>
</dependency>
这个 class 在我使用过的所有版本的 Javamail 中都存在。很明显,您的 CLASSPATH 上没有 Javamail JAR,对于任何其他 ClassNotFoundException。
您使用 maven 混合了类路径,并在 eclipse 中手动添加了引用。
禁用 "maven nature" 在命令行上 mvn eclipse:clean
刷新您的项目并 convert it to maven project
然后重试。
澄清一下:你把邮件api添加到pom的什么地方了?在 <dependecies>
或 <dependecyManagement
之下?
您应该将 jar 添加到服务器 Tomcat。
打开启动配置
添加外部 jar(查找您的电子邮件 jar)
甚至我也遇到了类似的错误。尝试以下 2 个步骤(这里已经推荐了第一个步骤)-
1. 将依赖项添加到 pom.xml
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.3</version>
</dependency>
- 如果这不起作用,请手动将
jar
文件放入您的.m2\repository\javax\<folder>\<version>\
目录。
您将使用maven-dependency-plugin
将项目依赖项复制到其他地方。
将此添加到 pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.mkyong.core.App</mainClass>
<classpathPrefix>dependency-jars/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/dependency-jars/
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
将生成以下清单文件。项目依赖项将被复制到 {project}/target/dependency-jars/.
manifest-Version: 1.0
Built-By: mkyong
Build-Jdk: 1.6.0_35
Class-Path: dependency-jars/log4j-1.2.17.jar
Created-By: Apache Maven
Main-Class: com.mkyong.core.App
Archiver-Version: Plexus Archiver
这对我有用。 资料来源:MKyong.com
我在 javax.mail.Activator class 中遇到了类似的问题。解决方案已从 war javax.mail 和 javax.activation 中删除并将其添加到 {tomcat}\lib 文件夹