Salut tout le monde , j'avance dans mon tutorial Struts de Mr Tahe ( http://tahe.developpez.com/java/struts/ )

je suis arrivé à la phase de test et au moment ou je valide dans mon formulaire j'ai l'erreur suivante :
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
 
20:23:20,595 ERROR [RequestUtils] Error creating form bean of class stia.st.struts.personne.FormulaireBean
java.lang.ClassNotFoundException: stia.st.struts.personne.FormulaireBean
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1340)
    at org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1189)
    at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:207)
    at org.apache.struts.util.RequestUtils.createActionForm(RequestUtils.java:797)
    at org.apache.struts.action.RequestProcessor.processActionForm (RequestProcessor.java:364)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:253)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    at org.apache.struts.action.ActionServlet.doPost (ActionServlet.java:525)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java :75)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:44)
    at org.apache.catalina.core.StandardValveContext.invokeNext (StandardValveContext.java:102)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:169)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java :102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext (StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext (StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service (CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java :705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java :619)
j'ai vérifier 2 fois les fichiers, la configuration et le tutorial.. (mais bon ... )

voici mon srtuts-config.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
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
           "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
           "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
 
 
<form-beans>
  <form-bean
    name="frmPersonne"
    type="stia.st.struts.personne.FormulaireBean"
  />
</form-beans>
 
 
  <action-mappings>
<action
  path="/main"
  name="frmPersonne"
  scope="session"
  validate="true"
  input="/erreurs.do"
  parameter="/vues/main.html"
  type="org.apache.struts.actions.ForwardAction"
/>
 
<action
  path="/erreurs"
  parameter="/vues/erreurs.personne.jsp"
  type="org.apache.struts.actions.ForwardAction"
/>
<action
  path="/reponse"
  parameter="/vues/reponse.personne.jsp"
  type="org.apache.struts.actions.ForwardAction"
/>
<action
  path="/formulaire"
  parameter="/vues/formulaire.personne.jsp"
  type="org.apache.struts.actions.ForwardAction"
/>
 
  </action-mappings>
 
<message-resources parameter="ressources.personneressources"/>
 
</struts-config>

mon FormulaireBean.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
 
package istia.st.struts.personne;
 
import javax.servlet.http.*;
 
import org.apache.struts.action.*;
 
public class FormulaireBean extends ActionForm {
 
 
//	 nom
	private String nom = null;
	public String getNom() {
	  return nom;
	}
	public void setNom(String nom) {
	  this.nom = nom;
	}
//	 age
	private String age = null;
	public String getAge() {
	  return age;
	}
	public void setAge(String age) {
	  this.age = age;
	}
 
//	 validation
	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
	  // gestion des erreurs
	  ActionErrors erreurs = new ActionErrors();
	  // le nom doit être non vide
	  if (nom == null || nom.trim().equals("")) {
	    erreurs.add("nomvide", new ActionMessage("personne.formulaire.nom.vide"));
	    // l'âge doit être un entier positif
	  }
	  if (age == null || age.trim().equals("")) {
	    erreurs.add("agevide", new ActionMessage("personne.formulaire.age.vide"));
	  }
	  else {
	    // l'âge doit être un entier positif
	    if (!age.matches("^\\s*\\d+\\s*$")) {
	      erreurs.add("ageincorrect", new ActionMessage("personne.formulaire.age.incorrect", age));
	      // on rend la liste des erreurs
	    }
	  } //if
	  // on rend la liste d'erreurs
	  return erreurs;
	}
 
}

mon formulaire.personne.jsp :

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
 
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html>
  <meta http-equiv="pragma" content="no-cache">
  <head>
    <title>Personne - formulaire</title>
    <script language="javascript">
      function effacer(){
         with(document.frmPersonne){
           nom.value="";
            age.value="";
          }
       }
    </script>
  </head>
  <body>
    <center>
      <h2>Personne - formulaire</h2>
       <hr>
       <html:form action="/main" name="frmPersonne" type="istia.st.struts.personne.FormulaireBean">
         <table>
           <tr>
             <td>Nom</td>
              <td><html:text property="nom" size="20"/></td>
            </tr>
            <tr>
             <td>Age</td>
              <td><html:text property="age" size="3"/></td>
            </tr>
           <tr>
          </table>
          <table>
           <tr>
             <td><html:submit value="Envoyer"/></td>
              <td><html:reset value="Rétablir"/></td>
              <td><html:button property="btnEffacer" value="Effacer" onclick="effacer()"/></td>
            </tr>
          </table>
       </html:form>
    </center>
  </body>
</html>


alors une idée sur la source du problème ?

Merci beaucoup