Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 阅读Tomcat上的电子邮件:ClassNotFoundException:javax.mail.MessaginException_Maven_Email_Tomcat_Intellij Idea_Classnotfoundexception - Fatal编程技术网

Maven 阅读Tomcat上的电子邮件:ClassNotFoundException:javax.mail.MessaginException

Maven 阅读Tomcat上的电子邮件:ClassNotFoundException:javax.mail.MessaginException,maven,email,tomcat,intellij-idea,classnotfoundexception,Maven,Email,Tomcat,Intellij Idea,Classnotfoundexception,我的应用程序正在Tomcat7上运行 我试图从收件箱中读取电子邮件,为此我使用了一个普通的Java类 还有一个Servlet调用上述类中的方法readmail 现在我得到一个例外: java.lang.ClassNotFoundException: javax.mail.MessagingException ... java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger javax.mail.Session.initLo

我的应用程序正在Tomcat7上运行

我试图从收件箱中读取电子邮件,为此我使用了一个普通的Java类

还有一个Servlet调用上述类中的方法
readmail

现在我得到一个例外:

java.lang.ClassNotFoundException: javax.mail.MessagingException
...
java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger
    javax.mail.Session.initLogger(Session.java:226)
    javax.mail.Session.<init>(Session.java:210)
    javax.mail.Session.getDefaultInstance(Session.java:321)
我在Maven中使用IntelliJ IDEA,我对javax.mail的依赖性做了很多更改(请参阅),但异常情况不断出现

我还更改了Tomcat的版本(7和8),以及“项目SDK”(1.7和1.8)和“项目语言级别”(7和8)的版本

我在某个地方读到,使用普通Java应用程序通过IMAP阅读电子邮件和在Tomcat上运行电子邮件是有区别的

在上一个项目中,我使用普通Java应用程序成功地阅读了电子邮件


有人能帮我解决这个异常吗?

默认情况下,Tomcat库中不包括JavaMail API

确保JavaMail依赖项(mail-X.X.jar)与应用程序打包在一起(在WEB-INF/lib中),或者位于Tomcat类加载器读取的文件夹中(例如$CATALINA_HOME/lib),如下所述:

谢谢,现在可以用了

我将maven(.m2/repository/…)下载的jar文件(javax.mail:javax.mail-api-1.5.4.jar)放入WEB-INF/lib(在我的项目中)

由于以下异常,我还需要将另一个jar文件放入WEB-INF/lib(com.sun.mail:javax.mail-1.5.4.jar)中:

java.lang.ClassNotFoundException: javax.mail.MessagingException
...
java.lang.NoClassDefFoundError: com/sun/mail/util/MailLogger
    javax.mail.Session.initLogger(Session.java:226)
    javax.mail.Session.<init>(Session.java:210)
    javax.mail.Session.getDefaultInstance(Session.java:321)
java.lang.NoClassDefFoundError:com/sun/mail/util/MailLogger
initLogger(Session.java:226)
Session.(Session.java:210)
getDefaultInstance(Session.java:321)
我添加了

<packaging>war</packaging>
战争
到我的pom.xml。这样,maven将依赖项放在目标文件夹中