bonjour ts le monde , Svp j'essai d'acceder a une base Mysql avec Struts ,
quand je demande ma page http://localhost:8080/Forum/liste/
j'ai l'erreur suivante:
je crois que l'erreur me vient de la section data-source parceq aucune des actions ne marchent que si je supprimer cette section data-sourceEtat HTTP 404 - Servlet action n'est pas disponible.
--------------------------------------------------------------------------
type Rapport d'état
message Servlet action n'est pas disponible.
description La ressource demandée (Servlet action n'est pas disponible.) n'est pas disponible.
--------------------------------------------------------------------------Apache Tomcat/5.5.20
Mon fichier Struts-config.xml :
---------------------------------------
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <struts-config> <data-sources> <data-source key="dbarticles"> <set-property property="driverClass" value="com.mysql.jdbc.Driver"></set-property> <set-property property="url" value="jdbc:mysql://localhost/dbarticles"></set-property> <set-property property="user" value="admarticles"></set-property> <set-property property="password" value="mdparticles"></set-property> <set-property property="minCount" value="2"></set-property> <set-property property="maxCount" value="5"></set-property> </data-source> </data-sources> <action-mappings> <action path="/liste" type="forum.FormulaireAction"> <forward name="afficherListeArticles" path="/vues/listarticles.jsp"/> <forward name="afficherErreurs" path="/vues/erreurs.jsp"/> </action> <action path="/test" parameter="/vues/listearticles.jsp" type="org.apache.struts.actions.ForwardAction" /> <action path="/v1" parameter="/vues/vue1.jsp" type="org.apache.struts.actions.ForwardAction" /> </action-mappings> <message-resources parameter="istia.st.struts.articles.ApplicationResources" null="false" /> </struts-config>
web.xml classiq:
---------------------------------------
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <?xml version="1.0" encoding="ISO-8859-1"?> <web-app> <welcome-file-list> <welcome-file>/vues/conn.html</welcome-file> </welcome-file-list> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
listeArticlesAction.java
========================================
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 package istia.st.struts.articles; import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; import org.apache.struts.action.Action; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class ListeArticlesAction extends Action { //Struts par la pratique - Serge Tahé, université d'Angers 125/134 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // lit le contenu de la table articles d'une connexion // réalisée à l'init du contexte // on récupère a source de données dbarticles DataSource dataSource = this.getDataSource(request, "dbarticles"); if (dataSource == null) { // la source de données n'a pas pu être créée ActionErrors erreurs = new ActionErrors(); erreurs.add("dbarticles", new ActionError("erreur.dbarticles", "La source de données n'a pu être créée")); this.saveErrors(request, erreurs); return mapping.findForward("afficherErreurs"); } // ici la source de données existe - on l'exploite Connection connexion = null; Statement st = null; ResultSet rs = null; String requête = null; ArrayList alArticles = new ArrayList(); // on gère les erreurs try { // obtenir une connexion connexion = dataSource.getConnection(); // préparer la requête SQL requête = "select code, nom, prix, stockActuel, stockMinimum from articles order by nom"; // l'exécuter st = connexion.createStatement(); rs = st.executeQuery(requête); // exploiter les résultats while (rs.next()) { // enregistrer la ligne courante alArticles.add(new String[] { rs.getString("code"), rs.getString("nom"), rs.getString("prix"), rs.getString("stockactuel"), rs.getString("stockMinimum") }); // ligne suivante } //while // libérer les ressources rs.close(); st.close(); } catch (Exception ex) { // des erreurs se sont produites ActionErrors erreurs = new ActionErrors(); erreurs.add("dbarticles", new ActionError("erreur.dbarticles")); this.saveErrors(request, erreurs); return mapping.findForward("afficherErreurs"); } finally { // on libère la connexion try { connexion.close(); } catch (Exception ignored) { } } // c'est bon request.setAttribute("listArticles", alArticles); return mapping.findForward("afficherListeArticles"); } //execute } //classe
Merci bq d'avance si vous avez une idee !!
Partager