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 :
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.
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();
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 :
Merci d'avance
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");
Partager