Bonjour, je bosse sur un projet en Struts, et je souhaites donc créer mes premières classes et utiliser la Servlet Action.
Voila le problème: je retombes toujours sur une page blanche lorsque je souhaites executer mon action.
Je tapes donc l'URL : http://..../appli/test.do
et là :page blanche.J'ai vérifié mon fichier struts-config, il est propre et sans erreurs.Le voici:
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 <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <action-mappings> <action path="/test" type="fr.test.Test" validate="true" > <forward name="success" path="/jsp/accueil.jsp"/> </action> </action-mappings> <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/> <message-resources parameter="MessageResources" /> <!-- =================================================== Validator plugin --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/> </plug-in> </struts-config>
Voici la classe test située dans le package fr:
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 package fr.test; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionForward; public class Test extends Action{ public ActionForward execute(ActionMapping mapping,HttpServletRequest request,HttpServletResponse response) { return mapping.findForward("success"); } }
La JSP associée:
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 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Accueil Test</title> <meta http-equiv="Content-type" content="text/html; charset=UTF-8" /> </head> <body> Bienvenue </body> </html>
Le problème d'après moi vient de la configuration; en effet la servlet action ne semble pas executer la classe Test.java. Si je rajoute du code JAVA dans cette classe, je n'ai jamais d'erreur lors de l'execution de test.do.
De plus voici mon fichier Web.xml:
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
78
79
80
81
82
83 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location> </taglib> <context-param> <param-name>NOM_APPLICATION</param-name> <param-value>REMPAGA</param-value> </context-param> <context-param> <param-name>NOM_POOL</param-name> <param-value>REMPAGA</param-value> </context-param> <context-param> <param-name>NOM_DATA_SOURCE</param-name> <param-value>REMPAGA_DataSource</param-value> </context-param> <context-param> <param-name>SERVEUR_APPLICATION</param-name> <param-value>WEBLOGIC</param-value> </context-param> <context-param> <param-name>PROFIL</param-name> <param-value>AGENT</param-value> </context-param> <context-param> <param-name>RACINE</param-name> <param-value>c:/appli/grh1/conf/rempaga/</param-value> </context-param> <context-param> <param-name>LOGS</param-name> <param-value>c:/appli/grh1/logs/rempaga/</param-value> </context-param> <display-name>REMPAGA</display-name> <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> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <mime-mapping> <extension>css</extension> <mime-type>text/css</mime-type> </mime-mapping> </web-app>
Enfin j'ai un doute sur le classpath.peut-etre qu'il manque une indication dans ce dernier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="WebApp/src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/j2re1.4.2_13"/> <classpathentry exported="true" kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> <classpathentry kind="output" path="WebApp/WEB-INF/classes"/> </classpath>
Enfin voici un apercu de mon arborescence. Lors du déploiement, je prends le dossier "WebApp" que je copies/colles dans mon Weblogic.Peut etre que j'oublie de prendre certains fichiers importants au passage?
Voila, j'espère que vous pourrez m'aider car la je sèche ...grave et moi qui aime le JAVAje commence a desesperer
![]()
Partager