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 :

Impossible d'instancier mon servlet ! Avez-vous une idée du problème ?


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut Impossible d'instancier mon servlet ! Avez-vous une idée du problème ?
    Bonjour,

    J'ai un soucis à savoir que je n'arrive pas à instancier ma servlet correctement !
    Je cherche depuis un moment, j'ai trouvé la cause du problème mais je ne sais pas comment le résoudre.


    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
    GRAVE: Exception lors de l'allocation pour la servlet accueil
    java.lang.ClassNotFoundException: net.sf.hibernate.exception.NestableException
    	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    	at java.lang.Class.getDeclaredConstructors0(Native Method)
    	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
    	at java.lang.Class.getConstructor0(Class.java:2699)
    	at java.lang.Class.newInstance0(Class.java:326)
    	at java.lang.Class.newInstance(Class.java:308)
    	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1116)
    	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    	at java.lang.Thread.run(Thread.java:619)
    En cherchant, je me suis aperçu que cela venait en fait de la gestion d'erreur, dans les méthodes (throws HibernateException / try,catch...).
    Le code est organisé de la façon suivante :

    Le JSP apel le SERVLET qui va instancier une méthode dans le BEAN_1. Le BEAN_1 hérite d'une méthode du BEAN_2, qui lui renvoie les élèments de la base de donnée mis en forme dans le BEAN_1. Ce tableau est renvoyé dans le servlets qui par une méthode FORWARD est censé le renvoyé dans la page JSP...

    Ce n'est pas un soucis d'instance mais de gestion d'erreur. Chaque module fonctionne indépendament sans aucun problème. Je mets le code ci-dessous.
    Auriez-vous une / des réponses à m'apporter et surtout comment résoudre ce problème ? Car j'avoue que je deviens "chèvre"....

    D'avance merci
    ++

    BEAN_2 :

    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
     
    public class database {
     
    (...)
     
    public List Ensemble_Commande() throws HibernateException {	
     
     
    		//Requete OK : 9H42	
    		String Query = "SELECT" +
    							" client_commande.IdClient, "  +
    							" client_commande.IdClientCommande, " +
    							" client_commande.DateClientCommande, " +
    							" client_commande.QuantiteClientCommande, " +
    							" client_commande.PrixTotalClientCommande, " +
    							" client_commande.DateReceptionClientCommande, " +
    							" client_commande.DateAnnulationClientCommande, " +
    							" client_mode_paiment.LibClientModePaiment" +
    						" FROM " +
    							" ClientCommande client_commande, " +
    							" ClientModePaiment client_mode_paiment" +
    						" WHERE " +
    							" client_commande.IdClient= '" + this._id_Clients + "' AND " + 
    							" client_mode_paiment.IdClientModePaiment = client_commande.IdClientModePaiment";
     
    		this.OpenSession_Transaction();
    		System.out.println(Query);
    		List q1 = session.createQuery(Query).list();
    		return q1;
    	}


    BEAN_1 :

    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
     
     
    public class Ensemble_Commande extends database {
     
    (...)
     
    public String[][] Retourne_Toutes_Commandes() throws HibernateException  {			
     
    		Integer Cpt = 0;
     
    			super.OpenSession_Transaction();
    			super.set_id_Clients(this._id_Clients);	
     
    				List q1 = (List) super.Ensemble_Commande();				
    				Iterator q2 = q1.iterator();		
    				String Informations[][] = new String[q1.size()][8] ;
     
    				/* Parcourir l'ensemble des élèments afin des les stocker dans un tableau */
    				while(q2.hasNext()){ 			
    					Object[] tuple = (Object[])  q2.next();
    					Integer IdentifiantClient = (Integer) tuple[0];
    					Integer IdentifiantCommande = (Integer) tuple[1];	
    					Date Date_Commande = (Date) tuple[2];	
    					Integer Quantite = (Integer) tuple[3];
    					BigDecimal Prix_Total = (BigDecimal) tuple[4];		
    					Date Date_Reception = (Date) tuple[5];
    					Date Date_Annulation = (Date) tuple[6];	
    					String Mode_Paiement = (String) tuple[7];				
     
    					Informations [Cpt][0] = IdentifiantClient.toString();
    					Informations [Cpt][1] = IdentifiantCommande.toString();
    					Informations [Cpt][2] = Date_Commande.toString();
    					Informations [Cpt][3] = Quantite.toString();
    					Informations [Cpt][4] = Prix_Total.toString();
    					Informations [Cpt][5] = Date_Reception.toString();
    					Informations [Cpt][6] = Date_Annulation.toString();			
    					Informations [Cpt][7] = Mode_Paiement.toString();	
     
    					//System.out.println(Titre_Livre);	
    					Cpt++;	
    				}
    				/* Renvoyer le tableau dans le servlet */
    			super.Commit_CloseSession();
    			return Informations;
     
    	}

    SERVLET

    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
    package servlets;
     
    import java.io.IOException;
     
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    import net.sf.hibernate.*;
     
     
    import Test.essai_servlets;
    import bean.commande.Ensemble_Commande;
     
    /**
     * Servlet implementation class accueil
     */
    public class accueil extends HttpServlet {
    	private static final long serialVersionUID = 1L;
     
        /**
         * @see HttpServlet#HttpServlet()
         */
        public accueil() {
            super();
            // TODO Auto-generated constructor stub
        }
     
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    	}
     
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
     
     
     
     
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
     
     
    		//Récupérer l'identifiant de l'utilisateur
    		String ValeurListe = request.getParameter("Lst_Nom_Personne").toString();
     
    		//Créer la variable de session et y stocker l'identifiant de l'utilisateur
            HttpSession session = request.getSession(true);
            Integer IdUser = (Integer) session.getAttribute("Identifiant_Utilisateur");
            if (IdUser != null){
            IdUser = (Integer) session.getAttribute("MySessionVariable");
            session.setAttribute("Identifiant_Utilisateur", IdUser);
            }else{
            session.setAttribute("Identifiant_Utilisateur", IdUser);
            }
     
            //Récupérer les commandes et translater vers la pages Commande.JSP
     
    		String Informations[][];
     
    			try {
    				Informations = this.RecupererCommandeUser();
    				request.setAttribute("Commande", Informations);       
    				RequestDispatcher rd = request.getRequestDispatcher("/commande.jsp");
    				rd.forward(request, response);					
     
    			} catch (HibernateException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
     
    	}
     
     
    	private String[][] RecupererCommandeUser() throws HibernateException {	
    		Ensemble_Commande Commande = new Ensemble_Commande();
    		String Informations[][] = Commande.Retourne_Toutes_Commandes();
    		return Informations;
    	}
    }

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    cette classe
    net.sf.hibernate.exception.NestableException
    est manquante. T'as probablement oublié les classe de hibernate dans ton WEB-INF/lib ou tu a mis hibernante 3 au lieu de hibernate 2. Les classes en net.sf.hibernate datent de hibernate 2. Dans hibernate 3 elle ont été déplacées vers org.hibernate

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    cette classe
    net.sf.hibernate.exception.NestableException
    est manquante. T'as probablement oublié les classe de hibernate dans ton WEB-INF/lib ou tu a mis hibernante 3 au lieu de hibernate 2. Les classes en net.sf.hibernate datent de hibernate 2. Dans hibernate 3 elle ont été déplacées vers org.hibernate

    Merci de ta réponse ! J'utilise Hibernate 2 j'avais oublé de précisé hier soir ! Dans les fonctions j'ai bien importé cette bibliothéque net.sf.hibernate.exception.NestableException et l'erreur reste toujours est identique (je n'ai pas changé le code que j'ai mis dans le 1er post)

    Par contre il est vrai que je n'ai rien importé dans le WEB-INF/lib.Je ne vois pas trés bien comment procéder ? je mets directement le JAR dans ce dossier (partie web) ? J'avoue ne pas trés bien saisir... :/

    D'avance merci
    ++

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    les "import" ne servent qu'à la compilation, pour t'éviter d'écrire le nom complet des classes à chaque fois que tu l'utilise. Ton application aura besoin de tes librairies lorsque tu les utilisera, donc il faut les fournir avec. Et dans uen web application, ces librairies doivent se placer dans WEB-INF/lib. Voir les bases de la programmation J2EE pour plus de détails.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Points : 104
    Points
    104
    Par défaut
    Effectivement cela fonctionne maintenant ! Merci beaucoup pour vos réponses ! Je donne ce site qu'est assez sympa pour rechercher des bibilothéques. http://www.findjar.com/index.jsp

    Bonne journée
    ++

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/08/2010, 13h40
  2. [AJAX] avez vous une idée ?
    Par Sensib dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/03/2008, 17h14
  3. avez-vous une solution Action script (exemple à l'appuie)
    Par lokis dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 12/01/2007, 16h42
  4. Réponses: 24
    Dernier message: 20/05/2006, 12h29
  5. Grosses opérations... avez-vous une requête efficace ?
    Par Huntress dans le forum Langage SQL
    Réponses: 8
    Dernier message: 20/06/2005, 16h13

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