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 :

Exception IndexOutOfBounds incompréhensible


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut Exception IndexOutOfBounds incompréhensible
    Bonjour,
    j'ai une exception de ce type en exécutant une servlet:

    GRAVE: "Servlet.service()" pour la servlet jsp a lancé une exception
    java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    at java.util.ArrayList.RangeCheck(ArrayList.java:547)
    at java.util.ArrayList.get(ArrayList.java:322)
    at org.apache.jsp.error_jsp._jspService(error_jsp.java:71)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    at eda.Controler.doPost(Controler.java:36)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    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:175)
    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:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
    Je ne comprend vraiment où il peut y avoir un débordement d'indice dans mon code relativement simple:

    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
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            try {
                String nom = request.getParameter("skin_name");
                String type = request.getParameter("skin_type");
                String filename = request.getParameter("skin_filename");
                String size = request.getParameter("skin_size");
                String image = request.getParameter("skin_image");
     
     
     
                if(nom.length() == 0 || filename.length() == 0 || size.length() == 0 || image.length() ==0) {
                    ArrayList<String> errors = new ArrayList<String>();
                    errors.add("Tous les champs ne sont pas remplis!");
                    request.setAttribute("errors", errors);
                    getServletContext().getRequestDispatcher("/error.jsp").forward(request, response);
                } 
                else {
                    if(XMLParser.addSkin(nom, type, filename, size, image)) {
                        request.setAttribute("msg", "succès!");
                        getServletContext().getRequestDispatcher("/skin_upload.jsp").forward(request, response);
                    }            
                }
     
            } finally { 
                out.close();
            }
        }
    Pouvez vous m'aider svp? Merci.

  2. #2
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Ce n'est pas plutôt dans la JSP que ça plante ? Rapport à cette ligne de la stack : " at org.apache.jsp.error_jsp._jspService(error_jsp.java:71)"

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut
    Désolé j'ai beaucoup de mal à lire les logs de tomcat, je trouve qu'il y a trop d'infos. Voici le code de 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
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@page import="java.util.ArrayList"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
       <% ArrayList errors = (ArrayList)request.getAttribute("errors"); %>
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Erreurs</title>
        </head>
        <body>
            <% for(int i=0; i<errors.size(); i++) {
                out.println((String)errors.get(i));
            }%>
        </body>
    </html>

  4. #4
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Heu .......
    Et si tu supprimes "out.println((String)errors.get(i));" de la JSP il n'y a plus d'erreur ???

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut
    Si, toujours la même erreur.

  6. #6
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Ouf, quelque part ça me rassure, je ne voyais vraiment pas comment ce code pouvait produire cette exception
    Ben, y'a plus qu'a rechercher quelles JSP sont exécutées lorsque ta stack apparait. Clairement, ce n'était pas cette JSP.

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut
    La seule autre jsp utilisée est celle ci:

    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
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <% String msg = (String)request.getAttribute("msg"); %>
    <!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=UTF-8">
        </head>
        <body>
            <% if(msg == null) { %>
                <form action="/moh.service" method="post">
                    Nom: <input type="text" name="skin_name" />
                    <br />
                    Fichier: <input type="text" name="skin_filename" />
                    <br />
                    Taille: <input type="text" name="skin_size" />
                    <br />
                    Image: <input type="text" name="skin_image" />
                    <br />
                    <input type="submit" value="envoyer" />
                </form>
            <% } else  { %>
                <%=request.getAttribute("msg")%>
            <% } %>
        </body>
    </html>
    Je ne vois vraiment pas où est le problème.

  8. #8
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Cette JSP ne peut pas compiler, où est défini la variable "msg" ?

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 60
    Par défaut
    C'est bien un page jsp qui "a prvoquer l'erreur" mais si tu ne vois pas le probleme, il faudrait aller voir d côté de l servlet servlet générée ans le repertoire {Catalna_home/\work\Catalina\localhost\_\org\apache\jsp}.
    Cherche y le nom de ton fichier jsp en .java et ouvre le pour inpecter le code.
    Pou cela, aide toi du numero de ligne qui indiquer dans le stacktrace de l'erreur afficher par tomcat.

    Fais signe si tu trouve quelque chose, ou alors, partage l code génér pour qu'on puisse voir avec toi l'ereu.

    Bonne chance.

  10. #10
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut
    Citation Envoyé par djsnipe Voir le message
    Cette JSP ne peut pas compiler, où est défini la variable "msg" ?
    Si, elle compile bien, regarde à la deuxième ligne.

  11. #11
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Le problème vient de ta boucle où tu effectues une itération de trop :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     for(int i=0; i<errors.size(); i++) {
                out.println((String)errors.get(i));
            }
    Le parcours des List doit se faire via un Iterator de préférence, afin d'éviter ce type d'erreur !

    a++

  12. #12
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Citation Envoyé par mithrendil Voir le message
    Si, elle compile bien, regarde à la deuxième ligne
    Ha oui, j'avais mal lu entre les lignes ...


    Citation Envoyé par adiGuba Voir le message
    Salut,
    Le problème vient de ta boucle où tu effectues une itération de trop :
    [...] Le parcours des List doit se faire via un Iterator de préférence, afin d'éviter ce type d'erreur !
    Là je ne vois pas trop, la condition sur "i < taille de la liste" est suffisant pour le parcours de la liste, même si c'est source d'erreur si on se loupe sur les index.

  13. #13
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut
    J'ai trouvé le problème, bête mais étrange cependant. J'ai complié une première fois ma jsp avec une opération <= à la place de <, mais j'avais corrigé et mon ide ne mettais pas à jour même après recompliation complète. J'ai supprimé puis recréé ma jsp et tout fonctionne. Merci pour votre aide!

  14. #14
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Héhéhé, voir les problèmes sur le rafraichissement du cache de JSP compilées de Tomcat dans les forums ....

  15. #15
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut
    En fait la jsp était bien modifiée mais pas moyen pour sa servlet. C'est la première fois que ça m'arrive avec Netbeans.

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

Discussions similaires

  1. Exception WCF incompréhensible
    Par bleuerouge dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 16/08/2010, 11h15
  2. Un exception NullReferenceException incompréhensible
    Par gabdeschenes dans le forum ASP.NET
    Réponses: 2
    Dernier message: 28/04/2009, 19h21
  3. Exception EOleException incompréhensible
    Par Eric Beaumard dans le forum Bases de données
    Réponses: 6
    Dernier message: 28/01/2008, 14h27
  4. [Javamail] Exception incompréhensible
    Par GLDavid dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 24/07/2007, 18h01
  5. [eVC] Gestion d'exception incompréhensible
    Par basnifo dans le forum Visual C++
    Réponses: 12
    Dernier message: 25/10/2006, 13h49

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