tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
0
ZUGRIFFE
191
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Athro Athro ist offline Mitglied Bronze
    Registriert seit
    Apr 2006
    Beiträge
    45
    ich habe folgendes Problem: in meiner Webanwendung (mit Struts), bekomme ich die folgende Fehlermeldung, wenn die Session verloren geht (Time-Out):
    java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
    at java.util.ArrayList.RangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:521)
    at org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:428)
    at org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUtils.java:770)
    at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:801)
    at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:881)
    at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
    at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
    at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:798)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:205)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at de.ktbl.controller.MyServletFilter.doFilter(MyServletFilter.java:103)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProt ocol.java:663)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Unknown Source)
    (ich änderte im web.xml des Tomcats den session-timeout auf 1 Minute) und nach einem Minute Warten bekomme ich dieses Problem, und das passierte nur auf die Seiten wo eine Checkboxen-Liste aktiviert wurde.
    Ich habe eine Funktion geschrieben:
    Code :
    1
    2
    3
    4
    5
    
    session.setAttribute(ConstantsDB.SESSIONATTRIBUT, "true");           
    StartseiteForm startForm = new StartseiteForm();       
    request.setAttribute(ConstantsDB.STARTSEITEFORM, startForm); 
    setSessionVerloren(true);       
    return mapping.findForward(ConstantsDB.SHOWSTART);
    die aufgerufen sollte, wenn die Session verloren geht.
    Nun leider bei manschen JSP's kommt die Anwendung so weit leider nicht, denn in der Reset-Funktion des Formes kracht es.

    ich habe die Listen, die auf im JSP im logic:iterator aufgerufen sind (nach der Struts Empfelung) in Reset initialsiert :
    Code :
    1
    2
    3
    
    this.myList = new ArrayList();
    for (int i=0; i<getAusgweSubstrateList().size(); i++)
    this.myList.add("");

    und im Form so deklariert:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    public void setMyBean(int index, MyBean myBean){
            if(index < myList.size()){
                myList.set(index, myBean);
            }else{
                myList.add(index, myBean);
            }
        }
    public MyBean getMyBean(int index){
            while(myList.size() <= index){
                myList.add(new MyBean ());
            }
            return (MyBean) myList.get(index);  
        }

    Und wird in JSP wird die Liste so aufgerufen:
    HTML-Code:
    <nested:root name="MyForm">
      <nested:iterate property="myList" id="myBean">
        <nested:checkbox property="checkSelectIndex" />
    ….
    das alles hat es nicht geholfen!
    Weist jemand was ich falsch mache?
    Danke
    Geändert von Athro (11.07.08 um 11:12 Uhr)
     

Ähnliche Themen

  1. Probleme nach Extrahieren in Ps Cs
    Von Jo444 im Forum Photoshop
    Antworten: 1
    Letzter Beitrag: 08.09.10, 11:31
  2. Probleme nach XP-Installation
    Von Mihawkler im Forum Microsoft Windows
    Antworten: 5
    Letzter Beitrag: 26.05.09, 23:43
  3. Time erhöhen? Wie rechnet time denn?
    Von Kalma im Forum PHP
    Antworten: 6
    Letzter Beitrag: 12.12.06, 07:37
  4. Antworten: 4
    Letzter Beitrag: 05.01.05, 18:50