2 votes

Webapp provoque java.lang.ClassNotFoundException: javax.mail.Authenticator

J'ai tomcat6 qui fonctionne sur Ubuntu, avec java 1.6.0_20.

Un des webapps provoque une erreur, ayant pour cause racine :

java.lang.ClassNotFoundException: javax.mail.Authenticator

le mail.jar et activation.jar (trouvés coupables dans mes recherches en ligne) se trouvent dans le répertoire /var/lib/tomcat6/common/lib et dans le répertoire lib du webapp. Le javax.mail.Authenticator.class se trouve dans mail.jar.

Que puis-je essayer d'autre pour le faire fonctionner ? y a-t-il des journaux quelque part qui peuvent m'aider à trouver la véritable erreur ?

mise à jour :

  • supprimé les fichiers .jar en double pour éviter d'éventuels conflits. ai essayé
  • d'exécuter tomcat (sur une autre machine, tomcat7 sur Windows) avec un chargement de classe verbeux :
[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
[...]

Cela ne me dit donc rien de nouveau.

2voto

Philipp Points 101

Utilisez-vous une session de messagerie fournie par Tomcat ou créez-vous la session de messagerie au sein de votre application?

Consultez ici comment utiliser une session de messagerie fournie par Tomcat:

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

C'est la manière dont vous voulez utiliser une connexion SMTP dans Tomcat.

Si vous utilisez la session de messagerie fournie par Tomcat, les jars mail et activation doivent être dans le classpath de Tomcat. Normalement, cela est réalisé en plaçant ces fichiers jar dans le répertoire tomcat/lib (si vous téléchargez le package depuis tomcat.apache.org)

Je suppose que le problème que vous rencontrez est causé par la configuration spéciale du répertoire Tomcat Ubuntu - je ne sais pas quel répertoire est équivalent au répertoire tomcat/lib là-bas. J'installe généralement la distribution originale depuis tomcat.apache.org en l'extrayant simplement dans le répertoire souhaité sur mes machines Ubuntu.

0voto

chocripple Points 2019

Avez-vous essayé de définir JAVA_HOME et CLASSPATH ? sur /etc/environment ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X