Bonjour.

En utilisant struts, j'ai un problème avec l'utilisation de l'intercepteur ExecAndWait.

Sans intercepteur, mon action s'éxécute correctement et fait correctement la lecture en base de donnée :
Gestion de la connexion :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
ServletContext servletContext= ServletActionContext.getServletContext();
ds = (DataSource)servletContext.getAttribute("dataSource");
connexion = ds.getConnection();
Avec l'intercepteur, la méthode "ServletActionContext.getServletContext()" (c'est à dire "ActionContext.getContext()") retourne null et ma connexion à la base de données ne fonctionne pas.

Cela vient surement du fait que struts exécute la méthode dans un thread séparé. (Il est marqué sur Internet : http://struts.apache.org/release/2.0...terceptor.html "Because the action will be running in a seperate thread, you can't use ActionContext because it is a ThreadLocal.")

Y-a-t-il donc un moyen de lire le fichier web.xml de facon propre (en utilisant un paramètre du web.xml, sans utiliser le nom du jdbc en dur comme dans l'exemple ci-dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 Context ctx = new InitialContext();
 Context envContext  = (Context)ctx.lookup("java:/comp/env");
 DataSource ds = (DataSource)envContext.lookup("jdbc/maBase");
Merci d'avance