IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Erreur tomcat : java.lang.ClassNotFoundException: projet.classes.controleurs


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Par défaut 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 : 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
     
    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 : 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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Le message d'erreur est pourtant clair :
    java.lang.ClassNotFoundException: projet.classes.controleurs
    Il ne trouve pas la classe controleurs dans le package projet.classes.
    Et pour cause, celle-ci n'existe effectivement pas.

    En fait, tu as tout simplement oublié de mettre le nom de la servlet dans la balise servlet-class :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <servlet>
    	<servlet-name>servletIndex</servlet-name>
    	<servlet-class>projet.classes.controleurs.servletIndex</servlet-class>
    </servlet>
    Pour info, selon les conventions de nommage Java, les noms des classes doivent commencer par une majuscule.
    Il faudrait renommer servletIndex en ServletIndex.

  3. #3
    Membre émérite
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Par défaut 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 ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur tomcat : java.lang.ArrayIndexOutOfBoundsException
    Par marwa zd dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 11/04/2014, 00h49
  2. Réponses: 3
    Dernier message: 19/06/2012, 21h08
  3. Erreur chargement java.lang.ClassNotFoundException
    Par ranly dans le forum Struts 1
    Réponses: 9
    Dernier message: 30/05/2012, 08h48
  4. Réponses: 5
    Dernier message: 29/10/2009, 14h12
  5. TOMCAT java.lang.ClassNotFoundException: org.postgresql.Driver
    Par Dryss51 dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 02/03/2008, 13h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo