Problème ExecAndWait et ActionContext.getContext()
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:
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:
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