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 :

Problème quand l'appli interroge la BDD


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 28
    Par défaut Problème quand l'appli interroge la BDD
    Bonjour à tous !

    Alors voilà, je ne suis pas dev, et un Stagiaire a fait une webAppli Java.
    Du coup j'ai monté un serveur avec :
    - Apache - Tomcat
    - MySql - Phpmyadmin

    Le tout est bien installé et fonctionnel. J'ai Uploader son .war dans le dossier "webapps" de Tomcat5.5 via le "Web Manager Tomcat". Et j'ai importé sa base de données via Phpmyadmin.

    l'appli est accessible depuis l'URL http://ip_server/nom_appli

    Jusque là pas de soucis. Sauf que dès que l'appli interroge la BDD, j'ai ceci :

    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
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    cause mère

    java.lang.NullPointerException
    bean.Produit.rechercherProduit(Produit.java:84)
    org.apache.jsp.Produit.ListeProduit_jsp._jspService(ListeProduit_jsp.java:72)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.5.
    Apache Tomcat/5.5
    N'étant pas dev, j'ai un peu de mal à comprendre. Avez-vous vous des pistes pour moi ??

    J'ai cherché déjà sur le net, sans trouver d'info assez concrète pour régler mon problème ..

    PS : Le stagiaire est partis sans vraiment savoir pourquoi cela ne fonctionnait pas, il a pas mal taffer dessus, c'est pourquoi j'aimerais arriver a faire fonctionner cette petit Appli

    Merci à vous !

  2. #2
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Bonjour,

    Ce qu'on peut dire et l'exception est levée dans la méthode "rechercherProduit" de la classe bean.Produit (ligne 84). Cette classe est utilisé par la page jsp "ListeProduit.jsp".

    Pour plus d'information, il nous faudrait le code de la classe et celui de la page jsp.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 28
    Par défaut
    Je suis désolé, mais je ne comprends pas vraiment ce que je dois te fournir pour que tu comprenne mieux le soucis ...

    Peut tu être plus clair ?.

    Merci de ta réponse rapidement !

  4. #4
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Il faudrait que tu nous montre le code de ta classe Produit et plus précisément la méthode rechercherProduit en nous indiquant qu'elle est la ligne 84 de la classe produit où se déclanche l'erreur NullPointerException.

  5. #5
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 28
    Par défaut
    Voici le code du fichier "RechercheProduit.jsp" :

    TSTJAVDENIS:/var/lib/tomcat5.5/webapps/donneestechniques/Produit# cat
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%
    String chemin;
    chemin = request.getRequestURI();
    getServletContext().setAttribute("cheminClient", chemin);
    getServletContext().setAttribute("cheminFournisseur", chemin);
    getServletContext().setAttribute("cheminTypeProduit", chemin);
    getServletContext().setAttribute("cheminTypeLigne", chemin);
    getServletContext().setAttribute("cheminProduit", chemin);
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Recherche d'un produit</title>
    </head>
    <body>
    <h1 align="center">Recherche d'un produit</h1>
    <br>
    <br>
    <div align="center">
    <a href="ListeProduit.jsp">Retour à la liste des produits</a><br>
    <br>
    <br>
    <form action="../RechercherProduit" method="post">
    <table>
    <tr>
    <td>Nom du produit : </td>
    <td>
    <input name="txtNomProduit" type="text">
    </td>
    </tr>
    <tr><td height="20"></td></tr>
    <tr>
    <td>Référence : </td>
    <td>
    <input name="txtReference" type="text">
    </td>
    </tr>
    <tr><td height="20"></td></tr>
    <tr>
    <td>Nom du client :</td>
    <td>
    <input name="txtNomClient" type="text" value=
    <%=getServletContext().getAttribute("NomClientRechercheProduit")%>
    >
    </td>
    <td>
    <a href="../Client/RechercheClient.jsp"><img src="../theme/filefind.png"></a>
    </td>
    </tr>
    <tr><td height="20"></td></tr>
    <tr>
    <td>Nom du fournisseur :</td>
    <td>
    <input name="txtNomFournisseur" type="text" value=
    <%=getServletContext().getAttribute("NomFournisseurRechercheProduit")%>
    >
    </td>
    <td>
    <a href="../Fournisseur/RechercheFournisseur.jsp"><img src="../theme/filefind.png"></a>
    </td>
    </tr>
    <tr><td height="20"></td></tr>
    <tr>
    <td>Type de produit :</td>
    <td>
    <input name="txtNomTypeProduit" type="text" value=
    <%=getServletContext().getAttribute("NomTypeProduitRechercheProduit")%>
    >
    </td>
    <td>
    <a href="../TypeProduit/RechercheTypeProduit.jsp"><img src="../theme/filefind.png"></a>
    </td>
    </tr>
    <tr><td height="20"></td></tr>
    <tr>
    <td>Type de ligne :</td>
    <td>
    <input name="txtNomTypeLigne" type="text" value=
    <%=getServletContext().getAttribute("NomTypeLigneRechercheProduit")%>
    >
    </td>
    <td>
    <a href="../TypeLigne/RechercheTypeLigne.jsp"><img src="../theme/filefind.png"></a>
    </td>
    </tr>
    </table>
    <input name="btnValider" type="submit" value="Valider" style="width: 100px; height: 50px">
    </form>
    </div>
    </body>
    La ligne 84 de ce code est la dernière des 3 suivantes (le ">") :

    <input name="txtNomTypeLigne" type="text" value=
    <%=getServletContext().getAttribute("NomTypeLigneRechercheProduit")%>
    >
    Merci à vous !

  6. #6
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 28
    Par défaut
    Citation Envoyé par jowo Voir le message
    Bonjour,

    Ce qu'on peut dire et l'exception est levée dans la méthode "rechercherProduit" de la classe bean.Produit (ligne 84). Cette classe est utilisé par la page jsp "ListeProduit.jsp".

    Pour plus d'information, il nous faudrait le code de la classe et celui de la page jsp.
    Voilà le code de ListeProduit.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    <%@page import="bean.Produit"%>
    <%@page import="bean.TypeProduit"%>
    <%@page import="bean.Client"%>
    <%@page import="bean.Fournisseur"%>
    <%@page import="bean.TypeLigne"%>
    <%@page import="java.util.Vector"%>
    <%@page import="java.util.Enumeration"%>
    <%@page import="java.io.PrintWriter"%>
    <%
    String chemin;
    chemin = request.getRequestURI();
    getServletContext().setAttribute("cheminTypeProduit", chemin);
    getServletContext().setAttribute("cheminClient", chemin);
    getServletContext().setAttribute("cheminFournisseur", chemin);
    getServletContext().setAttribute("cheminTypeLigne", chemin);
    //Initialisation liste
    Vector<Produit> listeProduits = new Vector<Produit>();
    Produit p = new Produit();
    Enumeration<Produit> enumProduit;
    listeProduits = Produit.rechercherProduit((String)getServletContext().getAttribute("NomProduitListeProduit"),
    (String)getServletContext().getAttribute("NomTypeProduitListeProduit"),
    (String)getServletContext().getAttribute("ReferenceListeProduit"),
    (String)getServletContext().getAttribute("NomClientListeProduit"),
    (String)getServletContext().getAttribute("NomFournisseurListeProduit"),
    (String)getServletContext().getAttribute("NomTypeLigneListeProduit"));
    enumProduit = listeProduits.elements();
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Produits trouvés</title>
    </head>
    <body>
    <h1 align="center">Produits trouvés</h1>
    <br>
    <br>
    <div align="center">
    <a href="../index.html">Retour à l'accueil</a><br>
    <br>
    <a href="CreationProduit.jsp">Créer un nouveau produit</a><br>
    <br>
    <a href="RechercheProduit.jsp">Rechercher un produit</a><br>
    <br>
    <br>
    <table border="1px">
    <tr>
    <th></th><th>Nom du produit</th><th>Référence</th><th></th><th>Type de produit</th><th></th><th>Client</th>
    <th></th><th>Fournisseur</th><th></th><th>Type de ligne</th><th>Remarque</th><th>Modifier</th><th>Supprimer</th>
    </tr>
    <%
    while(enumProduit.hasMoreElements()){
    p = enumProduit.nextElement();

    out.println("<form action=\""+"../ModifierProduit"+"\" method=\""+"post"+"\">");
    out.println("<tr>");
    out.println("<td><input type=\""+"hidden"+"\" name=\""+"txtCodeProduit"+"\" value=\""+p.getCodeProduit()+"\"></td>");
    out.println("<td><input type=\""+"text"+"\" name=\""+"txtNomProduit"+"\" value=\""+p.getNomProduit()+"\"></td>");
    out.println("<td><input type=\""+"text"+"\" name=\""+"txtReference"+"\" value=\""+p.getReference()+"\"></td>");
    out.println("<td><input type=\""+"hidden"+"\" name=\""+"txtCodeTypeProduit"+"\" value=\""+p.getCodeTypeProduit()+"\"></td>");
    out.println("<td><input type=\""+"text"+"\" name=\""+"txtNomProduit"+"\" "+
    "value=\""+TypeProduit.nommerTypeProduit(p.getCodeTypeProduit())+"\"></td>");
    out.println("<td><input type=\""+"hidden"+"\" name=\""+"txtCodeClient"+"\" value=\""+p.getCodeClient()+"\"></td>");
    out.println("<td><input type=\""+"text"+"\" name=\""+"txtNomClient"+"\" "+
    "value=\""+Client.nommerClient(p.getCodeClient())+"\"></td>");
    out.println("<td><input type=\""+"hidden"+"\" name=\""+"txtCodeFournisseur"+"\" value=\""+p.getCodeFournisseur()+"\"></td>");
    out.println("<td><input type=\""+"text"+"\" name=\""+"txtNomFournisseur"+"\" "+
    "value=\""+Fournisseur.nommerFournisseur(p.getCodeFournisseur())+"\"></td>");
    out.println("<td><input type=\""+"hidden"+"\" name=\""+"txtCodeTypeLigne"+"\" value=\""+p.getCodeTypeLigne()+"\"></td>");
    out.println("<td><input type=\""+"text"+"\" name=\""+"txtNomTypeLigne"+"\" "+
    "value=\""+TypeLigne.nommerTypeLigne(p.getCodeTypeLigne())+"\"></td>");
    out.println("<td><input type=\""+"text"+"\" name=\""+"txtRemarque"+"\" value=\""+p.getRemarque()+"\"></td>");
    out.println("<td><input type=\""+"radio"+"\" value=\""+"M"+"\" name=\""+"rdModifier"+"\"></td>");
    out.println("<td><input type=\""+"radio"+"\" value=\""+"S"+"\" name=\""+"rdModifier"+"\"></td>");
    out.println("<td><input type=\""+"submit"+"\" value=\""+"Valider"+"\" name=\""+"btnValider"+"\"></td>");
    out.println("</tr>");
    out.println("</form>");
    }
    %>
    </table>
    </div>
    </body>

  7. #7
    Membre chevronné
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Par défaut
    Comment arrives tu à cette JSP à partir d'un formulaire d'une Servlet ?


    vérifie la valeur renvoyé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getServletContext().getAttribute("NomTypeLigneRechercheProduit")
    cette information est bien concerver au niveau de ta servlet et non dans la request ou la session ?

    de plus tu ne répond pas à la question qui t'es posée je recite ton log erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bean.Produit.rechercherProduit(Produit.java:84)
    org.apache.jsp.Produit.ListeProduit_jsp._jspService(ListeProduit_jsp.java:72)
    On te demande la ligne 84 de ton bean Produit pas le source de la JSP qui l'appel de plus ton tomcat génére un listeproduit_jsp.java qu'il conserve il me semble et tu dois y avoir une ligne 72 qui coince qui doit correspondre à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Produit.rechercherProduit((String)getServletContext().getAttribute("NomProduitListeProduit"),
    (String)getServletContext().getAttribute("NomTypeProduitListeProduit"),
    (String)getServletContext().getAttribute("ReferenceListeProduit"),
    (String)getServletContext().getAttribute("NomClientListeProduit"),
    (String)getServletContext().getAttribute("NomFournisseurListeProduit"),
    (String)getServletContext().getAttribute("NomTypeLigneListeProduit"));
    Après si tu fais pas plus d'effort on va arreter de perdre notre temps à t'aider.

  8. #8
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 28
    Par défaut
    Je n'ai absolument aucune connaissances en Java .. Donc quand vous me parlez de Servlet / JSP / Bean etc ... Je ne capte que dale ... J'essaye de faire au mieux ... désolé !

    Alors pour répondre :

    On te demande la ligne 84 de ton bean Produit pas le source de la JSP qui l'appel de plus ton tomcat génére un listeproduit_jsp.java qu'il conserve il me semble et tu dois y avoir une ligne 72 qui coince qui doit correspondre à
    Je n'ai pas de "listeproduit_jsp.java" ... J'ai fais une recherche sur tous le serveur, sans résultats !

    En voyant ça "Produit.java:84" J'ai pensé que l'erreur se trouvait dans le fichier Produit.java à la ligne 84 ... Aparament ça n'est pas le cas. Ou dois-je chercher alors ??

    Merci

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Skadi Voir le message

    En voyant ça "Produit.java:84" J'ai pensé que l'erreur se trouvait dans le fichier Produit.java à la ligne 84 ... Aparament ça n'est pas le cas. Ou dois-je chercher alors ??

    Merci
    C'est justement le code de cette classe qu'il nous faut (Produit.java).
    Peux-tu la montrer ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    L'erreur se produit dans la méthode rechercherProduit de la classe Produit.java (ligne 84). Nous n'avons pas le code de cette classe. Le fichier-source de Produit.java ne se trouve probablement pas dans le répertoire d'installation de l'application WEB.

    Tu nous a fourni le code de la page ListeProduit.jsp, on te remercie. On note que dans cette page, un appel est fait à la méthode rechercherProduit avec six arguments:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    isteProduits = Produit.rechercherProduit((String)getServletContext().getAttribute("NomProduitListeProduit"),
    (String)getServletContext().getAttribute("NomTypeProduitListeProduit"),
    (String)getServletContext().getAttribute("ReferenceListeProduit"),
    (String)getServletContext().getAttribute("NomClientListeProduit"),
    (String)getServletContext().getAttribute("NomFournisseurListeProduit"),
    (String)getServletContext().getAttribute("NomTypeLigneListeProduit"));
    Il se peut qu'un des ces arguments ne soit pas renseigné.

    Il faudra trouver où ces arguments sont renseignés (probablement durant une initialisation) et à quoi ils servent (en analysant le code de Produit.java)?

    Pour info:
    La méthode getServletContext() retourne le contexte de l'application WEB.

Discussions similaires

  1. [Conception] Problème avec l'écriture dans une BDD [Script de news]
    Par NeuroGen dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/07/2006, 19h08
  2. Réponses: 3
    Dernier message: 29/04/2006, 11h58
  3. Réponses: 9
    Dernier message: 22/02/2006, 14h53
  4. Problème de mon appli sous windows 2000
    Par chourmo dans le forum Langage
    Réponses: 2
    Dernier message: 17/02/2006, 12h03
  5. Problème d'ajout multiples dans un BDD Access
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/05/2004, 13h34

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