Webapp会导致java.lang.ClassNotFoundException:javax.mail.Authenticator

我有tomcat6在Ubuntu上运行,用Java 1.6.0_20。

其中一个web应用程序导致一个错误,这有一个根本原因:

java.lang.ClassNotFoundException:javax.mail.Authenticator

mail.jar和activation.jar(在我的在线调查中发现这些是罪魁祸首)位于/ var / lib / tomcat6 / common / lib目录以及webapp的lib目录中。 javax.mail.Authenticator.class在mail.jar中。

还有什么我可以尝试使它工作? 有没有日志可以帮助我find真正的错误?

更新:

  • 删除重复的.jar文件以避免可能的冲突。 试着
  • 运行tomcat(在另一台机器,Windows上的tomcat7)与详细的类加载:
[Loaded javax.mail.Address from file:/C:/.../build/web/WEB-INF/lib/mail.jar] [Loaded javax.mail.internet.InternetAddress from file:/C:/.../build/web/WEB-INF/lib/mail.jar] [Loaded javax.mail.Part from file:/C:/.../build/web/WEB-INF/lib/mail.jar] [Loaded javax.mail.BodyPart from file:/C:/.../build/web/WEB-INF/lib/mail.jar] [Loaded javax.mail.internet.MimePart from file:/C:/.../build/web/WEB-INF/lib/mail.jar] [Loaded javax.mail.internet.MimeBodyPart from file:/C:/.../build/web/WEB-INF/lib/mail.jar] [Loaded javax.mail.Multipart from file:/C:/.../build/web/WEB-INF/lib/mail.jar] [Loaded javax.mail.internet.MimeMultipart from file:/C:/.../build/web/WEB-INF/lib/mail.jar] [Loaded javax.activation.DataSource from C:\Program Files\Java\jdk1.6.0_26\jre\lib\rt.jar] [Loaded javax.mail.Message from file:/C:/.../build/web/WEB-INF/lib/mail.jar] [Loaded javax.mail.internet.MimeMessage from file:/C:/.../build/web/WEB-INF/lib/mail.jar] [Loaded org.apache.naming.factory.MailSessionFactory from file:/C:/Program%20Files/Apache%20Software%20Foundation/Apache%20Tomcat%207.0.11/lib/catalina.jar] [Loaded org.apache.naming.factory.MailSessionFactory$1 from file:/C:/Program%20Files/Apache%20Software%20Foundation/Apache%20Tomcat%207.0.11/lib/catalina.jar] 28.07.2011 09:24:36 com.sun.faces.lifecycle.LifecycleImpl phase WARNUNG: executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@698b41da) threw exception javax.faces.FacesException: [snip...] [...] Caused by: java.lang.ClassNotFoundException: javax.mail.Authenticator [...] 

所以这并没有告诉我任何新的东西。

你使用Tomcat提供的邮件会话,还是在应用程序中创build邮件会话?

在这里看看如何使用Tomcat提供的邮件会话:

http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html#JavaMail_Sessions

这是您想要在Tomcat中使用SMTP连接的方式。

如果使用Tomcat提供的邮件会话,则需要Tomcat类path中的邮件和激活jar。 通常这是通过把这些jar文件放到tomcat / lib目录中实现的(如果你从tomcat.apache.org下载了这个包)

我猜你的问题是由特殊的Tomcat Ubuntu目录configuration引起的 – 我不知道哪个目录等于tomcat / lib目录。 我通常只需将其解压缩到我的Ubuntu机器上所需的目录中即可安装来自tomcat.apache.org的原始发行版。

你有没有尝试设置JAVA_HOME和CLASSPATH? 在/ etc /环境?