Webapp faz com que java.lang.ClassNotFoundException: javax.mail.Authenticator

2

Eu tenho o tomcat6 rodando no Ubuntu, com o java 1.6.0_20.

Um dos webapps causa um erro, que tem como causa raiz:

java.lang.ClassNotFoundException: javax.mail.Authenticator

o mail.jar e o activation.jar (encontrados como culpados na minha pesquisa on-line) estão no diretório / var / lib / tomcat6 / common / lib e no diretório lib do webapp. O javax.mail.Authenticator.class está no mail.jar.

O que mais posso fazer para que funcione? há logs em qualquer lugar que possam me ajudar a encontrar o erro real?

atualização:

  • removeu os arquivos .jar duplicados para evitar possíveis conflitos. tentou
  • executando tomcat (em outra máquina, tomcat7 no windows) com verbose carregamento de classe:
[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
[...]

Então, isso não me diz nada de novo.

    
por brandstaetter 27.07.2011 / 15:37

2 respostas

2

Você usa uma sessão de e-mail fornecida pelo Tomcat ou cria a sessão de e-mail no seu Aplicativo?

Veja aqui como usar uma sessão de email fornecida pelo Tomcat:

link

Essa é a maneira que você deseja usar uma conexão SMTP no Tomcat.

Se você estiver usando a sessão de email fornecida pelo Tomcat, ela precisará do email e do jar de ativação no caminho de classe do Tomcat. Normalmente isso é obtido colocando esses arquivos jar no diretório tomcat / lib (se você baixar o pacote de tomcat.apache.org)

Eu acho que o problema que você tem é causado pela configuração especial do diretório do Tomcat Ubuntu - eu não sei qual diretório é igual ao diretório tomcat / lib lá. Eu costumo instalar a distribuição original do tomcat.apache.org simplesmente extraindo-a no diretório desejado nas minhas máquinas Ubuntu.

    
por 28.07.2011 / 10:10
0

você tentou definir JAVA_HOME e CLASSPATH? em / etc / environment?

    
por 27.07.2011 / 15:57