Bonjour,
Ca va faire maintenant un an que j'ai pas touché à un projet struts et me voila atteint de la plus grande des amnésies. Je n'arrive pas à lier un formulaire situé dans une JSP à mon actionForm. Sur le projet, nous utilisons struts Tiles pour construire nos pages.
J'obtiens l'erreur suivante lorsque j'essaye d'acceder à la page:
Le corps de la page que j'essaye d'atteindre (version très simplifiée)19 avr. 2008 12:28:20 org.apache.struts.util.RequestUtils createActionForm
GRAVE: Error creating form bean of class fr.argosi.administration.InfoPersoForm
java.lang.IllegalAccessException: Class org.apache.struts.config.FormBeanConfig can not access a member of class fr.argosi.administration.InfoPersoForm with modifiers ""
at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:289)
at org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:254)
at org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:208)
at org.apache.struts.action.RequestProcessor.processActionForm(RequestProcessor.java:319)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:192)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
Appel fait par l'intermédiaire d'un lien: infoPerso.do
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 <%@ taglib prefix="html" uri="http://struts.apache.org/tags-html"%> <html:form method="post" action="enregistrer.do" > <center> <table> <tr> <td><label>Intitule </label></td> <td><html:text property="intitule" /></td> </tr> <tr> <td><label>Nom Entreprise</label></td> <td><html:text property="nomEntreprise" /></td> </tr> </table> </center> </html:form>
Le Struts-config.xml:
L'actionForm:
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 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config> <!-- ======== Form Bean Definitions ======== --> <form-beans> <form-bean name="formInfoPerso" type="fr.argosi.administration.InfoPersoForm" /> </form-beans> <!-- ======== Action Mapping Definitions ======== --> <action-mappings> <action path="/infoPerso" name="formInfoPerso" type="fr.argosi.administration.InfoPersoAction" scope="request"> <forward name="success" path="infoPerso"/> </action> </action-mappings> <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/> <!-- ======== Tiles plugin ======== --> <plug-in className="org.apache.struts.tiles.TilesPlugin"> <set-property property="definitions-config" value=" /WEB-INF/config/tiles-defs.xml"/> <set-property property="moduleAware" value="true"/> </plug-in> <!-- ======== Validator plugin ======== --> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value=" /WEB-INF/config/validator-rules.xml"/> </plug-in> </struts-config>
La classe action:
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 package fr.argosi.administration; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public class InfoPersoForm extends ActionForm { /** * Numero de serial automatique. */ private static final long serialVersionUID = -3211966788964671747L; private String intitule = null; private String nomEntreprise = null; public String getIntitule() { return intitule; } public void setIntitule(String intitule) { this.intitule = intitule; } public String getNomEntreprise() { return nomEntreprise; } public void setNomEntreprise(String nomEntreprise) { this.nomEntreprise = nomEntreprise; } }
Si vous pouvez m'aider, je vous en serais très reconnaissant. Je continue cependant à rechercher de mon coté car ce problème est vraiment bloquant pour le projet :p.
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 package fr.argosi.administration; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class InfoPersoAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ return mapping.findForward("success"); } }
Merci d'avance.
Partager