Bonjour,

Je suis en train de faire un simple TP, je ne trouve pas la source d'une exception... J'ai beau regarder sur le site d'Apache et sur le Net, rien n'y fait...

Commençons par la présentation du projet :

Une JSP contient un simple formulaire : /pages/index.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
 
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
 
<html:html>
<head>
	<title>Une application Struts</title>
</head>
<body>
	<html:form action="/accueil" method="post">
		<table>
			<tr>
				<td>
					Ville
				</td>
				<td>
					<html:text property="ville"/>
				</td>
			</tr>
			<tr>
				<td>
					Code Postal
				</td>
				<td>
					<html:text property="codePostal"/>
				</td>
			</tr>
			<tr>
				<td colspan="2">
					<html:submit value="Enregistrer"/>
				</td>
			</tr>
		</table>
	</html:form>
</body>
</html:html>
Cette JSP s'appuie sur un bean tout à fait classique : /WEB-INF/src/beans/Adresse.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
 
package beans;
 
import org.apache.struts.action.ActionForm;
 
public class Adresse extends ActionForm {
 
	private static final long serialVersionUID = 1L;
	public String Ville;
	public String CodePostal;
 
	public String getCodePostal() {
		return CodePostal;
	}
	public void setCodePostal(String codePostal) {
		CodePostal = codePostal;
	}
	public String getVille() {
		return Ville;
	}
	public void setVille(String ville) {
		Ville = ville;
	}
 
}
Suit la classe servlet : /WEB-INF/src/java/Adresse.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
 
package java;
 
import java.io.IOException;
 
import javax.servlet.ServletException;
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;
 
import beans.Adresse;
 
public class Controle extends Action {
 
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
		throws IOException, ServletException {
 
		//récupération du formulaire
		Adresse uneAdresse = new Adresse(); 
		uneAdresse = (Adresse) form;
 
		if (uneAdresse.getVille() != null && ! uneAdresse.getVille().equals("")) {
			System.out.println("La ville : " + uneAdresse.getVille());
		}
 
 
		return mapping.findForward("succes");
	}
 
}
Le struts-config.xml pour terminer :

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
 
<?xml version="1.0" encoding="ISO-8859-1" ?>
 
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">
 
<struts-config>
 
 
<!-- ================================================ Form Bean Definitions -->
 
    <form-beans>
    	<form-bean name="AdresseBean" type="beans.Adresse"/>
    </form-beans>
 
 
<!-- =========================================== Global Forward Definitions -->
 
    <global-forwards>
        <forward name="welcome" path="/Welcome.do"/>
        <forward name="succes" path="/pages/succes.jsp"/>
    </global-forwards>
 
 
<!-- =========================================== Action Mapping Definitions -->
 
    <action-mappings>
        <action path="/accueil" name="AdresseBean" type="java.Controle" />
 
 
    </action-mappings>
 
 
<!-- ======================================== Message Resources Definitions -->
 
    <message-resources parameter="java.MessageResources" />
 
</struts-config>
Je lance Tomcat, appelle l'appli web, le formulaire s'affiche très bien. Je rentre une simple donnée, et boum ! Je me prends une Erreur 500 :

exception

javax.servlet.ServletException: java.Controle
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

cause mère

java.lang.ClassNotFoundException: java.Controle
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1363)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209)
org.apache.struts.chain.commands.util.ClassUtils.getApplicationClass(ClassUtils.java:54)
org.apache.struts.chain.commands.util.ClassUtils.getApplicationInstance(ClassUtils.java:71)
org.apache.struts.chain.commands.servlet.CreateAction.createAction(CreateAction.java:98)
org.apache.struts.chain.commands.servlet.CreateAction.getAction(CreateAction.java:68)
org.apache.struts.chain.commands.AbstractCreateAction.execute(AbstractCreateAction.java:90)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
Là, je ne vois pas mon erreur , je me demande s'il ne manque pas un jar quelque part...

Quelqu'un aurait-il une idée ?

Merci par avance