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 incompréhensible dans une jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 66
    Points
    66
    Par défaut Erreur incompréhensible dans une jsp
    Bonjour, j'ai écrit une jsp qui me génère une erreur sous tomcat que je n'arrive pas à comprendre:

    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

    org.apache.jasper.JasperException: java.lang.NullPointerException
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

    cause mère

    java.lang.NullPointerException
    org.apache.jsp.home_jsp._jspService(home_jsp.java:59)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    Voici ma 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" import="java.sql.*"%>
     
    <%
     
    if(request.getParameter("formation").length() > 0 ) {
            try {
                    int formation = Integer.parseInt(request.getParameter("formation"));
                    if(formation > 0) {
                    out.println("Vous avez demandé la formation n° "+formation);
                    }
            }
     
            catch(Exception e) {
                    out.print("Problème de parsage de query_string. Message: "+e.getMessage());
            }
    }
     
    try {
            Database database = new Database("localhost","root","","APP");
            try {
                    database.connect();
            }
     
            catch(SQLException sqlex) {
                    out.println("Erreur de connexion à la base de données. Message: "+sqlex.getMessage());
            }
    }
     
    catch(ClassNotFoundException e) {
            out.println("Impossible de charger le JDBC. Message: "+e.getMessage());
    }
     
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@page import="greta.Database;"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Gestion des contenus</title>
    </head>
    <body>
     
    </body>
    </html>
    Les logs de tomcat ne sont pas plus explicites. Où est l'erreur dans ma jsp?

  2. #2
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut
    On dirait que te JSP n'est pas trouvé par le conteneur.... Voyons cela :
    - URL d'appel que tu utilises (avec les parametres) ?
    - t'as essayer de mettre un log en début de JSP, pour voir si elle s"execute bien ?

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 66
    Points
    66
    Par défaut
    Ma jsp est bien exécutée car j'ai du débugguer quelques erreurs conventionnelles. Pour l'envoi de paramètres j'utilise "nomjsp?formation=..." mais ce n'est pas ça qui est en cause car cette erreur se produit également sans envoi de paramètres.

  4. #4
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut
    Effectivement,...

    Se qui m'ennuis dans cette erreur, c'est le 'erreur interne' qui à lieu avant l'execution du ta JSP servlet... Je ne vois pas de 'nomjsp_servlet.jsp' avec une numéro de ligne... Voilà pourquoi je m'oriente vers cette une erreur dans le container...

    Tu as regardé vers les différentes versions java que tu utilises ?
    L'erreur est que pour cette jsp ou aussi pour les autres ?
    T'as essayé un nettoyage de ton projet, un undeploy et d'un nouveau deploy ?

  5. #5
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    Citation Envoyé par Lorantus Voir le message
    Effectivement,...

    Se qui m'ennuis dans cette erreur, c'est le 'erreur interne' qui à lieu avant l'execution du ta JSP servlet... Je ne vois pas de 'nomjsp_servlet.jsp' avec une numéro de ligne... Voilà pourquoi je m'oriente vers cette une erreur dans le container...

    Tu as regardé vers les différentes versions java que tu utilises ?
    L'erreur est que pour cette jsp ou aussi pour les autres ?
    T'as essayé un nettoyage de ton projet, un undeploy et d'un nouveau deploy ?
    hum ce n'est pas la ligne
    org.apache.jsp.home_jsp._jspService(home_jsp.java:59)
    dont tu parles ?

    a priori cette ligne signifie que la compilation est ok, non ?

    de plus son premier if est susceptible d'envoyer une NullPointerException si le paramètre formation n'est pas défini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(request.getParameter("formation").length() > 0 ) {
    cela expliquerait le message d'erreur en absence de paramètres

    dans ce cas la il faudrait regarder les noms des paramètres dans l'url
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  6. #6
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Points : 66
    Points
    66
    Par défaut
    Oui c'est exactement ça, ouisque ma jsp fonctionne sans problème avec un paramètre. Comment éviter cette erreur à l'appel de la page sans ce paramètre? Mettre la condition aussi dans le try-catch?

  7. #7
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    en testant ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(request.getParameter("formation") != null ) {
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  8. #8
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut
    J'ai bien pensé au paramétre formation à null :
    1) c'est possible que je se sois si simple que cela... (et il appel avec un paramètre formation)
    2) dans le cas d'un paramétre inexistant, il aurait une erreur nullPointer avec un numéro de ligne dans la servlet JSP...

    Il n'y a pas de référence à une servlet JSP dans son rapport d'erreur... C'est donc que la JSP est compliée mais pas trouvée... encore, qu'il faut regarder le source de org.apache.jsp.home_jsp._jspService(home_jsp.java:59).

    Voilà pourquoi je reste sur une erreur effectivement interne au container. Est-ce sa config. ????

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 29
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    c'est bien le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(request.getParameter("formation").length() > 0 ) {
    qui pose problème. Si le paramètre n'existe pas dans la requête, alors request.getParameter("formation") retournera la valeur null. Et faire un .length sur un null ... on sait ce que ca donne.

    La lecture de l'exception est normale, une exception est levée dans la jsp à la ligne 59, étant donné que tu ne l'attrapes pas elle est remontée au conteneur. Et alors le conteneur te fait une jolie "exception interne" mais qui t'indique que la cause mère est du à la jsp.

    En fait quand on a une exception, il ne faut pas la lire de haut en bas, mais de bas en haut.

    /Muzo

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <%
    
    String var = request.getParameter("formation")
    if ( var != null && var.length() > 0 ) 
    {
       ... ici, il y a quelque chose dans "formation"
    }
    
    %>
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Erreur de Joda time dans une JSP
    Par momjunior dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 08/10/2013, 11h36
  2. erreur dans une jsp :MyBean cannot be resolved to a type
    Par persanbleue dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 30/06/2009, 15h15
  3. erreur requete SQL dans une JSP
    Par shada dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 25/08/2008, 14h57
  4. Erreur incompréhensible dans une boucle
    Par Neuromancien2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/08/2007, 16h48
  5. récupération des message d'erreurs dans une jsp
    Par clement42 dans le forum Struts 1
    Réponses: 17
    Dernier message: 23/10/2006, 11h59

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