accès page avec un form => java.lang.IllegalAccessException
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:
Citation:
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)
Le corps de la page que j'essaye d'atteindre (version très simplifiée)
Appel fait par l'intermédiaire d'un lien: infoPerso.do
Code:
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:
Code:
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> |
L'actionForm:
Code:
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;
}
} |
La classe action:
Code:
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");
}
} |
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.
Merci d'avance.