Bonjour,

je cherche un peux d'aide pour mon pb de configuration.
j'essai d'envoyer un mail de puis ma web app deployé sur tomcat.

le truc c'est que j'ai reussi a envoyé un mail avec du code et donc maintenant pour faire bien les choses je voudrais déclarer une jndi dans la conf de tomcat.
le probleme se trouve lorsque je place le mail.jar dans la lib de tomcat, eclipse (je travail sous eclipse) me pete une exception :

javax.mail.Session cannot be cast to javax.mail.Session

donc j'en deduis qu'il ya un conflit de class, le second mail.jar est importé dans ma web app via maven
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4</version>
		</dependency>
et je ne peux pas le lever sinon ma class send mail ne peux pas fonctionner.
et lorsque je leve le mail.jar de la lib tomcat, là c'est le serveur qui plante:

staktrace :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
8 juil. 2011 11:30:06 com.sun.faces.application.ActionListenerImpl processAction
GRAVE: java.lang.NoClassDefFoundError: javax/mail/Authenticator
javax.faces.el.EvaluationException: java.lang.NoClassDefFoundError: javax/mail/Authenticator
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
	at javax.faces.component.UICommand.broadcast(UICommand.java:311)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
	at

context.xml (tomcat):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<Resource auth="Container" mail.smtp.host="ptx.smtp.corp.xxxxx" name="mail/NomDeLaRessource" type="javax.mail.Session"/>
server.xml:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<Resource mail.smtp.host="ptx.smtp.corp.xxxxx" name="mail/NomDeLaRessource" type="javax.mail.Session"/>
code webapp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Session session = null;
		try {
		Context initCtx = new InitialContext();
		Context envCtx = (Context) initCtx.lookup("java:comp/env");
		session =  (Session) envCtx.lookup("mail/NomDeLaRessource");
 
		} catch (Exception ex) {
		System.out.println("erreur au lookup");
		System.out.println( ex.getMessage());
		}
c'est cette ligne qui plante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
session =  (Session) envCtx.lookup("mail/NomDeLaRessource");