Javamail 1.5.1,Tomcat 7和java.lang.ClassNotFoundException:javax.mail.Authenticator

时间:2014-01-25 04:30:24

标签: java eclipse tomcat javamail

我尝试将Javamail 1.5.1与Tomcat 7和Eclipse Kepler一起使用。

当我尝试发送电子邮件时,Tomcat会因下面的错误而爆炸......

从文档中,我知道我需要的一切现在都在javax.mail.jar中。我在webapp的WEB-INF / lib文件夹中有这个。

我认为它抱怨找不到javax.mail.Authenticator。但我已经证实这个班级在罐子里。

这应该很容易。有人可以指出我错过了什么吗?

我还将jar作为库添加到eclipse首选项中。

另外......我在哪里可以获得下载的javadoc所以我可以将其添加到eclipse中?即所以我可以将鼠标悬停在单词上并获取文档?

由于

java.lang.NoClassDefFoundError: javax/mail/Authenticator
org.apache.naming.factory.MailSessionFactory.getObjectInstance(MailSessionFactory.java:106)
org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:143)
javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
org.apache.naming.NamingContext.lookup(NamingContext.java:843)
org.apache.naming.NamingContext.lookup(NamingContext.java:154)
org.apache.naming.NamingContext.lookup(NamingContext.java:831)
org.apache.naming.NamingContext.lookup(NamingContext.java:168)
util.SendEmails.<init>(SendEmails.java:47)
...

2 个答案:

答案 0 :(得分:2)

我有完全相同的问题,我通过将Java Mail jar添加到tomcat lib目录来修复此问题。

我认为错误的原因是在JNDI查找期间没有加载来自webapp本身的类,所以为了让JNDI工作,你需要直接向tomcat提供jar,而不是在你的webapp中。

答案 1 :(得分:0)

很容易忘记将Tomcat的lib中的jar添加到Tomcats类路径中。项目 - &gt;运行方式 - &gt;运行配置 - &gt; YourServer - &gt; Classpath选项卡。这有助于我的情况。简单地将文件复制到tomcat的lib文件夹是不够的。