我正在尝试将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.
我在其他帖子中已经知道可以修复将依赖性添加到pom.xml中,所以我做到了:
的pom.xml
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.3</version>
</dependency>
但我仍然得到错误..有人可以帮我这个吗?
答案 0 :(得分:8)
同样在1.4.3版本中,不再存在名为mail的工件ID。如果要使用1.4.3,则应使用此依赖项
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mailapi</artifactId>
<version>1.4.3</version>
</dependency>
答案 1 :(得分:1)
您应该将jar添加到服务器Tomcat。
打开启动配置
添加外部jar(查找您的电子邮件jar)
答案 2 :(得分:0)
最新版本的Java Mail API是
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.5.2</version>
</dependency>
这个版本会出现同样的错误吗?
答案 3 :(得分:0)
版本1.4中已存在javax/mail/MessagingException
。所以我想这只是IDE中的一个程序集问题。刷新pom依赖项并检查IDE构建的工件应该足够了。
答案 4 :(得分:0)
此类已存在于我曾使用的所有Javamail版本中。显然,您的CLASSPATH上没有Javamail JAR,就像任何其他ClassNotFoundException一样。
答案 5 :(得分:0)
您使用maven混合了类路径,并在eclipse中手动添加了引用。
禁用“maven nature”命令行上的mvn eclipse:clean
刷新项目并convert it to maven project
,然后重试。
要澄清:你在哪里添加了pom中的邮件api?在<dependecies>
下或<dependecyManagement
下?
答案 6 :(得分:0)
即使我遇到了类似的错误。请尝试以下2个步骤(此处已经建议了第一个步骤)-
1.将依赖项添加到您的pom.xml
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.3</version>
</dependency>
jar
文件放在您的.m2\repository\javax\<folder>\<version>\
目录中。答案 7 :(得分:0)
您将使用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
答案 8 :(得分:0)
我对javax.mail.Activator类有类似的问题。解决方法是从war javax.mail和javax.activation中删除并将其添加到{tomcat} \ lib文件夹