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 :

JSP : Erreur JasperException avec Arraylist


Sujet :

Servlets/JSP Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut JSP : Erreur JasperException avec Arraylist
    Bonjour, mon histoire d'amour avec les JSP vient de commencer, ou plutôt de rependre.
    Sauf que j''ai une erreur dans tomcat
    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
    org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 32
     
    29: 			if (list != null) nomListL = list.toString(); 
    30: 			int i = 0;
    31: 
    32: 			for (Livre l :list){
    33: 			%>	
    34: 			<tr>
    35: 				<td><%=l.getTitre()%></td>
     
     
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    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
    46
    47
    48
    49
    50
    <%@ 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">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Comamnder un Livre</title>
    </head>
    <body>
     
    <%@ page import="java.util.*, bean.Livre" %>
    <%! 
                    private String opt1 = "<select name='";
                    private String opt2 = "'> <option value=0>0</option><option value=1>1</option><option value=2>2</option> <option value=3>3</option> </select>"; 
    %> 
    <div>
     
    	<FORM action="Connexion" method="get">
    		<table width="100%">
    				<TR>
    					<TD><b>Titre</b></TD>
    					<TD><b>Auteur</b></TD>
    					<TD><b>Prix</b></TD>
    					<TD><b>Quantité</b></TD>
    				</TR>
    			<%
                            String nomListL = "";
                            ArrayList<Livre> list = (ArrayList<Livre>) application.getAttribute("B");
                            if (list != null) nomListL = list.toString(); 
                            int i = 0;
     
                            for (Livre l :list){
                            %>	
    			<tr>
    				<td><%=l.getTitre()%></td>
    				<td><%=l.getAuteur()%></td>
    				<td><%=l.getPrix()%></td>
    				<td><%=opt1%><%=i++%><%=opt2%></td>
    			</tr>
    			<%}     %>
    			</table>
    		<br>
    		<input type="submit" value="Commander">
    	</FORM>
    </div>
    <%@ include file = "footer.html" %>
     
     
    </body>
    </html>
    J'ai regardé le poste : http://www.developpez.net/forums/d50...rtir-page-jsp/
    J'ai essayé de réctifier mon erreur pour tester si je récupére bien qqch...sauf que j'ai toujours la meme erreur.

    Sous tomca voila printStack :
    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
    18 juin 2011 10:43:13 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
    java.lang.NullPointerException
    	at org.apache.jsp.index_jsp._jspService(index_jsp.java:92)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	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:298)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    	at java.lang.Thread.run(Unknown Source)
    Par ailleur j'ai ce warning au niveau de ma JSP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<Livre> list = (ArrayList<Livre>) application.getAttribute("B");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    - Type safety: Unchecked cast from Object to 
    	 ArrayList<Livre>
    Ce n'ai pas trop grave car j'envoi bien un arrayList de Livre, donc je sais ce que je récupére.

    Pour le reste est ce que qqun aurait un conseil à me donner ?

  2. #2
    Membre émérite 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 : 53
    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
    Par défaut
    Dans cette ligne du stacktrace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    java.lang.NullPointerException
    	at org.apache.jsp.index_jsp._jspService(index_jsp.java:92)
    Tu as écris une page JSP qui est transformée en servlet par Tomcat. Cette ligne te dit qu'il y a un référence "null" à cette ligne du servlet.
    Sans cette ligne 92, on peut supposer que toutes les références sont "null", et tomber sur la bonne ! Il y a plus rapide,heureusement...
    Peux-tu avoir ce servlet avant compilation, sous sa forme .java, et le poster sous forme de code -pas tout, mais quelques lignes avant, cela devrait suffir ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut
    Avant compilation ?
    Cette servlet est créer dans par apache, depuis ma JSP.
    Je suis obligé de la déployer pour qu'elle soit créer.

    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
       out.write("\t\t\t\t\t<TD><b>Auteur</b></TD>\r\n");
          out.write("\t\t\t\t\t<TD><b>Prix</b></TD>\r\n");
          out.write("\t\t\t\t\t<TD><b>Quantité</b></TD>\r\n");
          out.write("\t\t\t\t</TR>\r\n");
          out.write("\t\t\t");
     
    			String nomListL = "";
     
    				//@SuppressWarnings("unchecked")
    			ArrayList<Livre> list = (ArrayList<Livre>) application.getAttribute("B");
    			if (list != null) nomListL = list.toString(); 
    			int i = 0;
     
    			for (Livre l :list){
     
          out.write("\t\r\n");
          out.write("\t\t\t<tr>\r\n");
          out.write("\t\t\t\t<td>");
          out.print(l.getTitre());
          out.write("</td>\r\n");
          out.write("\t\t\t\t<td>");
    La ligne ou il y a le NullPointerException est la suivante :

  4. #4
    Membre émérite 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 : 53
    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
    Par défaut
    Ben voilà, list est "null".
    Pas d'autres solutions, que celle-ci.
    Ajoute un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(list!=null){
     for (Livre l :list){
      [...]
     }
     [...]
    }
    Par contre, il faut que tu trouves d'où cela vient et si c'est normal dans ton process.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut
    Je ne comprends pas pourquoi list est null ! Car j'ai une classe "init.java" :

    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
    public class Init extends HttpServlet{
     
    	public void init(){
     
     
    		ArrayList<Livre> biblio = new ArrayList<Livre>();
     
    		Livre l1 = new Livre("Les Miserables","Victor Hugo",25);
    		Livre l2 = new Livre("Gargantua","Francois Rabelais",40);
    		Livre l3 = new Livre("Harry Potter","J. K. Rowling",15);
    		Livre l4 = new Livre("Programmer en Java","Claude Delannoy",45);		
    		Livre l5 = new Livre("Bleach","Tite Kubo",10);	
    		biblio.add(l1);
    		biblio.add(l2);
    		biblio.add(l3);
    		biblio.add(l4);
    		biblio.add(l5);			
     
    		//Client c = null;
     
    		this.getServletContext().setAttribute("B", biblio);
    	}
    }
    Cependant je ne sais pas si je doit l'appeler depuis ma JSP (Je ne peux pas l'appeler depuis un form dans ma JSP)
    Car c'est une classe qui me permet juste de charger les données.
    Or je n'utilise pas de dispatcher dans cette classe.

    Est ce que je suis obliger d'appeler cette classe depuis ma JSP ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut
    Alors j'ai changé un peu 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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <%@ page import="java.util.*, bean.Livre" %>
    <%! 
                    private String opt1 = "<select name='";
                    private String opt2 = "'> <option value=0>0</option><option value=1>1</option><option value=2>2</option> <option value=3>3</option> </select>"; 
    %> 
    <div>
    	<jsp:useBean id="Livre" scope="session" class="bean.Livre"></jsp:useBean>
    	<FORM action="Connexion" method="get">
    		<table width="100%">
    				<TR>
    					<TD><b>Titre</b></TD>
    					<TD><b>Auteur</b></TD>
    					<TD><b>Prix</b></TD>
    					<TD><b>Quantité</b></TD>
    				</TR>
    			<%
                            String nomListL = "";
                                    
                                    //@SuppressWarnings("unchecked")
                                    ArrayList<Livre> list =  (ArrayList<Livre>) session.getAttribute("B");
                            if (list != null) nomListL = list.toString(); 
                            int i = 0;
     
                            if (list != null){
                            for (Livre l :list){
                            %>	
    			<tr>
    				<td><%=l.getTitre()%></td>
    				<td><%=l.getAuteur()%></td>
    				<td><%=l.getPrix()%></td>
    				<td><%=opt1%><%=i++%><%=opt2%></td>
    			</tr>
    			<%}     
                            }else{
                                    
                                    ArrayList<Livre> myList = new ArrayList<Livre>();
                                    Livre l1 = new Livre("Les Miserables","Victor Hugo",25);
                                    Livre l2 = new Livre("Gargantua","Francois Rabelais",40);
                                    Livre l3 = new Livre("Harry Potter","J. K. Rowling",15);
                                    Livre l4 = new Livre("Programmer en Java","Claude Delannoy",45);                
                                    Livre l5 = new Livre("Bleach","Tite Kubo",10);
                                    
                                    list.add(l1);
                                    list.add(l2);
                                    list.add(l3);
                                    list.add(l4);
                                    list.add(l5);
                            
                                    for (Livre l :list){
                                            %>
    					<tr>
    				<td><%=l.getTitre()%></td>
    				<td><%=l.getAuteur()%></td>
    				<td><%=l.getPrix()%></td>
    				<td><%=opt1%><%=i++%><%=opt2%></td>
    			</tr>
    			<%
                                    }
                            }
                            %>
    			</table>
    		<br>
    		<input type="submit" value="Commander">
    	</FORM>
    </div>
    Donc l'erreur tomcat est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 53
     
    50: 				Livre l4 = new Livre("Programmer en Java","Claude Delannoy",45);		
    51: 				Livre l5 = new Livre("Bleach","Tite Kubo",10);
    52: 				
    53: 				list.add(l1);
    54: 				list.add(l2);
    55: 				list.add(l3);
    56: 				list.add(l4);
    Je ne comprends pas pourquoi ma liste est vide ? Je la crée en live avec des données en dur dans la JSP !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut
    J'ai fais des erreur de recopie, , la list en live fonctionne bien !

    Maintenant ma question est toujours là même : comment je fais pour ajouter des information d'une servlet dans une jsp ?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 264
    Par défaut
    j'ai trouvé la solution : En fait tout ce passe dans la méthode init qui est chargé au démarrage.

    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
     public void init() {
        	ArrayList<Livre> biblio = new ArrayList<Livre>();
     
    		Livre l1 = new Livre("Les Miserables","Victor Hugo",25);
    		Livre l2 = new Livre("Gargantua","Francois Rabelais",40);
    		Livre l3 = new Livre("Harry Potter","J. K. Rowling",15);
    		Livre l4 = new Livre("Programmer en Java","Claude Delannoy",45);		
    		Livre l5 = new Livre("Bleach","Tite Kubo",10);	
    		biblio.add(l1);
    		biblio.add(l2);
    		biblio.add(l3);
    		biblio.add(l4);
    		biblio.add(l5);		
     
     
    		this.getServletContext().setAttribute("B", biblio);
     
        }
    Merci pour l'aide.

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

Discussions similaires

  1. [JSP]Tomcat 6.0.18 erreur 404, avec l'environnement eclipse
    Par hajer_baccouch dans le forum Eclipse
    Réponses: 0
    Dernier message: 19/05/2011, 10h07
  2. Erreur passage d'arraylist de servlet vers jsp
    Par padawan78 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 10/04/2011, 23h52
  3. JSP erreur JasperException
    Par glasgow dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 06/05/2009, 12h02
  4. erreur étonnante avec ArrayList
    Par Nayila dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 13/11/2007, 10h31
  5. Erreur fréquente avec ASP et IIS
    Par Community Management dans le forum ASP
    Réponses: 2
    Dernier message: 11/02/2004, 22h20

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