Erreur tomcat : java.lang.ClassNotFoundException: projet.classes.controleurs
Bonjour,
je développe une application web en java avec tomcat comme serveur d'application. Lors de l'exécution j'ai l'erreur suivante qui s'affiche :
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 38 39 40 41
|
Etat HTTP 500 -
--------------------------------------------------------------------------------
type Rapport d'exception
message
description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
exception
javax.servlet.ServletException: L'enrobeur (wrapper) ne peut trouver la classe servlet projet.classes.controleurs ou une classe dont elle dépend
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:835)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
java.lang.Thread.run(Unknown Source)
cause mère
java.lang.ClassNotFoundException: projet.classes.controleurs
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1386)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:835)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
java.lang.Thread.run(Unknown Source)
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.5.27.
--------------------------------------------------------------------------------
Apache Tomcat/5.5.27 |
Tout a pourtant l'air normal car le code de la servlet est le suivant :
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 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 84 85 86 87 88
|
package projet.classes.controleurs;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import df.java.gesconbd.DFConnexion;
public class servletIndex extends HttpServlet{
private static final long serialVersionUID = 1L;
private Connection conPrj=null;
private DFConnexion gesConPrj = new DFConnexion();
private String FichierConfig="config.cnx";
/*** Test de l'existence du fichier de configuration ***/
public boolean FichierExiste(){
File fichier = new File(FichierConfig);
return fichier.exists();
}
//Procédure INIT
public void init() {
}
//Procédure DOGET
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,
ServletException {
String msg=""; boolean succesCon=false;
if(!FichierExiste()){
msg="Impossible d'établir une connexion avec le serveur, car le fichier de configuration n'existe pas. Veuillez renseigner de nouveaux paramètres de connexion au serveur.";
getServletContext().getRequestDispatcher("/paramconnex.jsp?txtmsg="+msg).forward(request,response);
}else{
try{
gesConPrj.litDFConnexionDsFichier(FichierConfig);
conPrj = gesConPrj.getDfConnexion();
succesCon=true;
}catch(Exception e){}
if(succesCon){
getServletContext().getRequestDispatcher("/connex.html").forward(request,response);
}else{
msg="Echec de connexion au serveur. Veuillez vérifier les paramètres du fichier de configuration.";
getServletContext().getRequestDispatcher("/paramconnex.jsp?txtmsg="+msg).forward(request,response);
}
}
}
//Procédure DOPOST
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException,
ServletException {
String msg=""; boolean succesCon=false;
String srv = request.getParameter("txtsrv");
String bd = request.getParameter("txtbd");
String usr = request.getParameter("txtusr");
String pwd = request.getParameter("txtpwd");
String nom = request.getParameter("txtnom");
String des = request.getParameter("txtdes");
String typ = request.getParameter("cmbtyp");
String port = request.getParameter("txtport");
gesConPrj.setDfBd(bd); gesConPrj.setDfDesc(des); gesConPrj.setDfNom(nom);
gesConPrj.setDfPort(port); gesConPrj.setDfPwd(pwd); gesConPrj.setDfSrv(srv);
gesConPrj.setDfTyp(typ); gesConPrj.setDfUsr(usr);
try{
gesConPrj.ecritDFConnexionDsFichier(FichierConfig);
succesCon=true;
} catch(Exception e){}
try{
conPrj=gesConPrj.getDfConnexion();
} catch(Exception e){}
if(succesCon){
getServletContext().getRequestDispatcher("/connex.jsp").forward(request,response);
}else{
msg="Echec de connexion au serveur. Les paramètres spécifiés sont incorrects.";
getServletContext().getRequestDispatcher("/paramconnex.jsp?txtmsg="+msg).forward(request,response);
}
//doGet(request, response);
}
public void destroy() {
try{conPrj.close();}catch(Exception e){}
}
} |
Celui du web.xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?xml version="1.0" encoding="UTF-8"?>
<web-app>
<display-name>SMS BANKING</display-name>
<servlet>
<servlet-name>servletIndex</servlet-name>
<servlet-class>projet.classes.controleurs</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletIndex</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app> |
le contexte de l'application (df.xml) :
Code:
<Context path="/df" reloadable="true" docBase="D:\projets\eclipse\workspace\df" workDir="D:\projets\eclipse\workspace\df\work" />
l'url saisie dans le navigateur :
Code:
http://127.0.0.1:8080/df/
Bien sûr la servlet est nikel (aucune erreur, aucun warning lors de la compilation). J'ai pour idée que le problème vient du fait que tomcat n'arrive pas à trouver le fichier compilé (.class) de la servlet afin de l'exécuter. La version de tomcat utilisée est : Tomcat 5.5.27, et le jdk1.6.
A votre avis ? c'est koi le problème ?
Erreur tomcat : java.lang.ClassNotFoundException: projet.classes.controleurs
Bonjour,
Est ce que le problème ne vient de ton package ??? Vérifies bien le nom et l'emplacement. Ou fais juste un test simple déplace ton package dans le default package, juste pour voir ce que ça donne ?
Est ce que tu utilses Eclipse ?