Time-Out Probleme

Status
Nicht offen für weitere Antworten.

Athro

Mitglied
Hallo,

ich habe folgendes Problem, wenn die Session verloren geht (Time-Out), dann bekomme ich die folgende Fehlermeldung:

java.lang.IndexOutOfBoundsException: Index: 1, 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 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(Http11BaseProtocol.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 habe eine Funktion geschrieben:
Code:
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 eine Funktion geschrieben diese Funktion soll das Sessions-Attribut auf true setzten und auf die JSP eine Fehlermeldung ausgeben.
Nun leider so weit kommt die Anwendung leider nicht, denn in der Reset-Funktion des Formes kracht es, und die Funktion soll in der Action aufgerufen werden.
PS.: ich versucht die Funktion in Reset aufzurufen, habe ich dieselben Probleme.

Danke
Athro
 

HLX

Top Contributor
Deinem Code nach zu Urteilen verwendest du Struts.

Um Code vor der Struts-Formularverarbeitung auszuführen gibt es zwei Möglichkeiten:

1. Du schreibst einen ServletFilter und hängst ihn vor das ActionServlet.
www.jsptutorial.org/content/filter
In die doFilter()-Methode schreibst du vor dem "chain.doFilter(request, response)" deinen Code. An dieser Stelle solltest du sicherheitshalber von der Verwendung von Struts-Elementen absehen.

2. Die strutsbasierte (und von Struts vorgeschlagene) Lösung ist das Überschreiben des RequestProcessors. Ist allerdings etwas kniffeliger. Hier eine Kurzbeschreibung des RequestProcessors.
http://struts.apache.org/1.x/userGuide/building_controller.html#request_processor

Der Fehler tritt so wie es aussieht bei der Vorverarbeitung deines Forms auf. Vielleicht gibt´s auch ein Problem mit der Formklasse, oder mit der StrutsConfig so dass dein Workaround eigentlich garnicht erforderlich ist
 

Athro

Mitglied
Hallo HLX,
Danke dass Du beantwortest hast, und entschuldige mich dass so lange es gedauert hat bis ich antworte, denn ich war die letzte Zeit im Unterwegs.

Nun zum (Time-Out) Problem, ich möchte Dir sagen das dieses Problem kommt nur bei der JSP die einen CheckBoxen hat vor, bei allen andren JSP kommt dieses Problem nicht vor.

Ich habe gelesen dass Struts den CheckBoxen nicht wieder auf (false) setzt, ich hab sie im Reset auf false gesetzt aber dass hat auch nicht geholfen.

Dein Vorschlag mit dem Filter habe ich nicht genau verstanden wie und wo soll ich den Filter erstellen vor, im oder nachdem Reset

Vielen Dank

Athro
 

HLX

Top Contributor
Mir ist nicht ganz klar, was eine Checkbox mit einnem Timeout zu tun haben soll. Die Checkboxen in der Reset-Methode auf false zu setzen ist auf jeden Fall der richtige weg. Struts setzt Checkboxen nicht wieder auf false zurück, weil dieser Zustand nicht vom Client an den Server übermittelt wird. Daher ist der Workaround über die Reset-Methode erforderlich.

Ein ServletFilter hat nichts mit Struts zu tun sondern mit der Servlet-Technologie allgemein. Du registrierst ihn in der web.xml und mappst ihn auf dein ActionServlet, da dieses bei jedem Struts-Aufruf angesteuert wird:
Code:
<filter>
    <filter-name>MyServletFilter</filter-name>
    <filter-class>
        com.myapp.MyServletFilter
    </filter-class>
<filter-mapping>
    <filter-name>MyServletFilter</filter-name>
    <servlet-name>action</servlet-name>
</filter-mapping>

Die Filterklasse implementiert javax.servlet.Filter.

Wenn du nun einen Request an Struts schickts wird die doFilter-Methode durchlaufen:
Code:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    throws IOException, ServletException {
    
    // hier kommt der Code hin, der vor der Struts-Verarbeitung ausgeführt werden soll

    // hier wird automatisch der nächste Filter aufgerufen, falls kein weiterer Filter 
    // vorhanden ist, wird das ActionServlet angesteuert
    doFilter(request, response, chain); 

    // hier kommt der Code hin, der nach der Struts-Verarbeitung ausgeführt werden soll			
}

Weitere Infos zu Filtern siehe Tutorial oben.
 

Athro

Mitglied
Hallo HLX,

ich änderte die web.xml Datei Nach deinem Beispiel, und habe ich dazu eine Klasse MyServletFilter die den Filter implementiert, nun bekomme ich das folgende Fehler:
HTTP Status 404 - /ProjektName/index.jsp

--------------------------------------------------------------------------------

type Status report

message /ProjektName/index.jsp

description The requested resource (/ProjektName/index.jsp) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.12

Code:
die web.xml sieht so aus:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

...
...
...
    
    <filter>
        <filter-name>MyServletFilter</filter-name>
        <filter-class>de.controller</filter-class>
         <init-param>
            <param-name>log_category</param-name>
            <param-value>DurationLog</param-value>
        </init-param>
    </filter>
    
    <filter-mapping>
       <filter-name>MyServletFilter</filter-name>
       <url-pattern>*.do</url-pattern>
    </filter-mapping>

   <servlet>
      <servlet-name>action</servlet-name>
      <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
      <init-param>
         <param-name>config</param-name>
         <param-value>/WEB-INF/struts-config.xml</param-value>
      </init-param>
      <init-param>
         <param-name>debug</param-name>
         <param-value>0</param-value>
      </init-param>
      <init-param>
         <param-name>detail</param-name>
         <param-value>3</param-value>
      </init-param>
      <load-on-startup>0</load-on-startup>
   </servlet>
   <servlet-mapping>
      <servlet-name>action</servlet-name>
      <url-pattern>*.do</url-pattern>
   </servlet-mapping></web-app>

und die Klasse MyServletFilter:
Code:
package de.controller;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class MyServletFilter implements Filter {

   private static Log logger;

   public void init(FilterConfig config) throws ServletException {
      // check whether a category has been
      // configured in the deployment descriptor
      String category = config.getInitParameter("------------>>>>>>>>>>>>>>>>>>>>>log_category");
      if (category != null) {
         logger = LogFactory.getLog(category);
      }
      else {
         logger = LogFactory.getLog(MyServletFilter.class);
      }
   }

   public void doFilter(ServletRequest request, ServletResponse response,
         FilterChain chain) throws IOException, ServletException {

      String url = null;
      if (request instanceof HttpServletRequest) {
         url = ((HttpServletRequest)request).getRequestURL().toString();
      }
      long duration, starttime = System.currentTimeMillis();

      // proceed along the chain
      chain.doFilter(request, response);

      // after response returns, calculate duration and log it
      duration = System.currentTimeMillis() - starttime;
      if (logger.isDebugEnabled()) {
         logger.debug("==========================>>>>>>>>>>duration: " + duration + " - " + url);
      }
   }

   public void destroy() {
   }
was mache ich nun falsch?

Danke
 

HLX

Top Contributor
Schau mal in die Tomcat-Logs im "logs"-Verzeichnis deines Tomcat. Vielleicht ist deine Anwendung aufgrund eines Fehlers in der web.xml nicht geladen worden.
 

Athro

Mitglied
Hallo HLX,

ich glaube er ist in der web.xml gelandet, den er sieht die ConstantsDB-Klasse, die den Logger-Instanzen mit dem Namen mittels der statischen Funktion Logger.getLogger() geholt werden.
Code:
public final class ConstantsDB {
...
public static final Logger log = Logger.getLogger(ConstantsDB.class);
...

im Tomcat-Logs wird nur dieses Info geschrieben:

SL: DS ist ok [Function:] setDs [Location: ] de.ktbl.model.ConstantsDB INFO -

für die Connection Pooling aus den Parametern der Erzeuge ich eine DataSource-Datei :
Code:
public class ResourceManagerListener implements ServletContextListener {
	// private Logger log = null;

	DataSourceWrapper ds = null;

	public ResourceManagerListener() {
		super();
	}

	public void contextInitialized(ServletContextEvent sce) {
		ServletContext application = sce.getServletContext();

		String driverClass = application.getInitParameter("driverClass");
		String jdbcURL = application.getInitParameter("jdbcURL");
		String user = application.getInitParameter("user");
		String password = application.getInitParameter("password");

		try {
			ds = new DataSourceWrapper();
			ds.setDriverClassName(driverClass);
			ds.setJdbcURL(jdbcURL);
			ds.setUserName(user);
			ds.setPassword(password);

			application.setAttribute("DataSource", ds);
		} catch (Exception e) {
			application.log("Error creating connection pool: ", e);

			ConstantsDB.log.error("Error creating connection pool: ", e);
		}

		// ---------------DataSource an den Service Locator übergeben-------------

		ServiceLocator.getInstance().setDs(ds);

	}

	public void contextDestroyed(ServletContextEvent sce) {
		ServletContext application = sce.getServletContext();

		application.removeAttribute("DataSource");

	}
}

im web.xml wird ResourceManagerListener unter Listner deklariert:
Code:
    <listener>
        <listener-class>
            de.controller.ResourceManagerListener
        </listener-class>
    </listener>
gibt hier vileicht ein Problem?
 

HLX

Top Contributor
Kann ich mir eigentlich nicht vorstellen. Der Fehler besagt, dass deine JSP-Datei nicht gefunden wird.

Falls du eine welcome-File-List in deiner web.xml hast, nimm die mal raus und lass "index.jsp" in der URL weg. Dann sollten die Dateien, die im Root-Verzeichnis deiner Webanwendung liegen angezeigt werden. Ist die Datei dabei?

Vielleicht hast du auch einen anderen Kontextnamen anstelle von "ProjektName" angegeben.
 

Athro

Mitglied
ich löschte von dem web.xml des Tomcats die Liste:
Code:
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

hat niht geholfen

im web.xml des Struts habe ich den Filter und die listner erstellet:
Code:
    <listener>
        <listener-class>
            de.controller.ResourceManagerListener
        </listener-class>
    </listener>


HLX hat gesagt.:
Dann sollten die Dateien, die im Root-Verzeichnis deiner Webanwendung liegen angezeigt werden. Ist die Datei dabei?

Vielleicht hast du auch einen anderen Kontextnamen anstelle von "ProjektName" angegeben.

Die Datei ResourceManagerListener.java ist dabei meinst Du diese Datei? und wo soll ich den Kontextnamen "ProjektName" angeben?
 

HLX

Top Contributor
Ich meinte nicht die web.xml des Tomcat. Die ist für den Tomcat selbst.

Du musst die web.xml deiner Anwendung anpassen! Alle anwendungsspezifischen Angaben (ServletFilter etc.) gehören ebenfalls in die web.xml der Anwendung!

Der Kontext wird in der server.xml des Tomcat oder in einer context.xml gesetzt. Falls du eine IDE verwendest wird der Kontext i.d.R. dort in den Projekteinstellungen konfiguriert. Eclipse mit WTP z.B. unter Project-->Properties-->Web Project Settings

Edit: Mit Datei meinte ich die index.jsp, die bei dir scheinbar fehlt. Die sollte im Root-Verzeichnis deiner Web-Anwendung liegen.
 

Athro

Mitglied
HLX hat gesagt.:
Ich meinte nicht die web.xml des Tomcat. Die ist für den Tomcat selbst.
Du musst die web.xml deiner Anwendung anpassen! Alle anwendungsspezifischen Angaben (ServletFilter etc.) gehören ebenfalls in die web.xml der Anwendung!
Im die web.xml meiner Anwendung habe ich Alle spezifischen Angaben der Anwendung angepasst, und nur die web.xml des Tomcat hat die index.jsp (so habe ich vorher gemeint)

HLX hat gesagt.:
Der Kontext wird in der server.xml des Tomcat oder in einer context.xml gesetzt. Falls du eine IDE verwendest wird der Kontext i.d.R. dort in den Projekteinstellungen konfiguriert. Eclipse mit WTP z.B. unter Project-->Properties-->Web Project Settings
Unter Project-->Properties-->Web Project Settings ist der richtige Kontext (ProjektName), im server.xml:
Code:
<Context docBase="ProjektName" path="/ProjektName" reloadable="true" source="org.eclipse.jst.j2ee.server:ProjektName"/></Host>
context.xml hat nur:
Code:
<Context>
    
    <WatchedResource>WEB-INF/web.xml</WatchedResource>	
    
    <!--
    <Manager pathname="" />
    -->
</Context>

HLX hat gesagt.:
Edit: Mit Datei meinte ich die index.jsp, die bei dir scheinbar fehlt. Die sollte im Root-Verzeichnis deiner Web-Anwendung liegen.
Die index.jsp liegt bei mir unter (WebContent) also im Root-Verzeichnis meiner Web-Anwendung.

ich kann dieses Fennomen auch nicht verstehen, und zwar warum beim Time out wird es bei mansche JSP eine Fehlermeldung gezeigt (so wie ich wollte) und bei andren bekomme ich kracht es!!!
Ich bin ratlos :bahnhof:
 

HLX

Top Contributor
Athro hat gesagt.:
Im die web.xml meiner Anwendung habe ich Alle spezifischen Angaben der Anwendung angepasst, und nur die web.xml des Tomcat hat die index.jsp (so habe ich vorher gemeint)

Unter Project-->Properties-->Web Project Settings ist der richtige Kontext (ProjektName), im server.xml:
Code:
<Context docBase="ProjektName" path="/ProjektName" reloadable="true" source="org.eclipse.jst.j2ee.server:ProjektName"/></Host>
context.xml hat nur:
Code:
<Context>
    
    <WatchedResource>WEB-INF/web.xml</WatchedResource>	
    
    <!--
    <Manager pathname="" />
    -->
</Context>
Prima! Dein Kontext lautet "ProjektName", d.h. deiner Anwendung wird auf dem Tomcat über die URL "localhost:8080/ProjektName" angesprochen.

Athro hat gesagt.:
Die index.jsp liegt bei mir unter (WebContent) also im Root-Verzeichnis meiner Web-Anwendung.
Schon klar, dass sie in deiner IDE liegt, aber kommt sie auch auf dem Tomcat an. Also: welcome-file-list aus der anwendungsspezifischen web.xml entfernen, Tomcat starten ggf. "http://localhost:8080/ProjektName" im Browser eingeben, falls der Eclispe-Browser das nicht automatisch macht. Jetzt müsste eine Liste der Dateien und Ordner im Browser erscheinen, die im Root-Verzeichnis deiner Webanwendung liegen. Also, was passiert? Ist da ne index.jsp und was passiert, wenn du die anklickst?
 

Athro

Mitglied
Ich habe die welcome-file-Liste von web.xml des Tomcat gelöschet und die Anwendung von Browser aufgerufen, ich bekam eine Liste, die im Root-Verzeichnis meiner Webanwendung sind.
Directory Listing For /
________________________________________
Filename Size Last Modified
css/
Thu, 26 Jun 2008 08:12:59 GMT
images/
Thu, 26 Jun 2008 06:26:15 GMT
index.jsp
0.1 kb Fri, 11 Apr 2008 06:50:42 GMT
js/
Thu, 26 Jun 2008 06:26:15 GMT
jsp/
Wed, 02 Jul 2008 12:41:47 GMT
________________________________________
Apache Tomcat/5.5.12
Wenn ich die index.jsp klicke wird die Anwendung gestartet.
 

HLX

Top Contributor
Athro hat gesagt.:
HTTP Status 404 - /ProjektName/index.jsp

--------------------------------------------------------------------------------

type Status report

message /ProjektName/index.jsp

description The requested resource (/ProjektName/index.jsp) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.12
Code:
[/quote]

Dann hat sich das hier erledigt? Was für eine Fehlermeldung gibt´s denn jetzt noch?
 

Athro

Mitglied
Nach dem ich die index.jsp klicke wird die Anwendung gestartet und in der 3 Webflow (bzw auf der 3 Seite -JSP-) kommt das Fehler mit dem Time-Out das am Anfang beschrieben habe:
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:497)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:798)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:205)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
java.util.ArrayList.RangeCheck(Unknown Source)
java.util.ArrayList.get(Unknown Source)
org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:521)
org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:428)
org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUtils.java:770)
org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:801)
org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:881)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:798)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:205)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.12
 

Athro

Mitglied
Nach dem ich die index.jsp klicke wird die Anwendung gestartet und in der 3 Webflow (bzw auf der 3 Seite -JSP-) kommt das Fehler mit dem Time-Out das am Anfang beschrieben habe:
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:497)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:798)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:205)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
java.util.ArrayList.RangeCheck(Unknown Source)
java.util.ArrayList.get(Unknown Source)
org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:521)
org.apache.commons.beanutils.PropertyUtils.getIndexedProperty(PropertyUtils.java:428)
org.apache.commons.beanutils.PropertyUtils.getNestedProperty(PropertyUtils.java:770)
org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:801)
org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:881)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:798)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:205)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.12
[/quote]
 

HLX

Top Contributor
Sorry, aber muss ich dir hier jeden Wum aus der Nase ziehen? Vorhin hatten wir einen HTTP-Fehler 404 und jetzt ist das alte Problem wieder da. Hast du die Filtergeschichte mal ausprobiert?

Außerdem, nach 3 Klicks gibt es keinen Session-Timeout. Vielleicht liegt dein Problem ganz woanders.

Du solltest den Code mal debuggen. Setzt nen Exception-Breakpoint und überprüfe, warum das Array leer ist. Vielleicht ist auch ein Scope falsch gesetzt.
 

Athro

Mitglied
entschuldige mich, da ich die Filter von web.xml immer wider lösche damit ich die Anwendung testen kann, habe ich Letztes Mal im web.xml vergessen die Filter rein zu setzen ich habe sie dort kopiert und auf dem Browser bekomme ich die 404 Fehler:
HTTP Status 404 - /euAgroBiogas/

--------------------------------------------------------------------------------

type Status report

message /ProjektName/

description The requested resource (/ProjektName/) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.12
 

HLX

Top Contributor
Also, dann ist dein Projekt wohl nicht auf dem Server angekommen. Möglicherweise hat sich durch den Einbau des Filters ein Fehler in deine web.xml eingebaut. Möglicherweise die Tag-Hierarchie nicht eingehalten...

Es wäre gut, wenn du bei auftretenden Fehlern erstmal selbst auf die Suche gehst, manchmal kann es nur ein einfacher Tippfehler sein.

Schau mal im Eclipse-View "Servers" ob die Anwendung gestartet wurde. Mit Sicherheit gab es auch ne Fehlermeldung in der Konsole.

Prinzipiell sollte man beachten, wenn man unter Eclipse Web-Projekte entwickelt: Treten merkwürdige Fehler auf, sollte man sicherheitshalber den Tomcat neu starten. Ggf. schadet es auch nicht das Tomcat-Work-Directory zu säubern (View "Servers" --> rechte Maustaste auf den Tomcat --> Clean Tomcat Work Directory...)

Ansonsten denke ich, dass wir ohne deinen Code hier nicht weiterkommen. Warum ein Timeout das Problem sein soll ist mir auch immer noch nicht klar. Ich habe im Moment das Gefühl du hast erhebliche Wissenslücken in der Java-Web-Technologie.
 

Athro

Mitglied
HLX hat gesagt.:
Es wäre gut, wenn du bei auftretenden Fehlern erstmal selbst auf die Suche gehst, manchmal kann es nur ein einfacher Tippfehler sein.
Ich habe dieses Fehler vor fast einem Monat beim Testen entdeckte (ich änderte im web.xml des Tomcats den session-timeout auf 1 Minute) und nach einem Minute Warten kam immer dieses Problem was ich Dir mehr Mals erwähnt habe vor, und das passierte nur auf die Seiten wo ein Checkbox aktiviert wurde.

Wenn dass kein Time-out Problem ist und hat mit Checkbox nicht zu tun warum kommt dieses Problem nur in der JSP wo man ein Checkbox aktiviert und nach Ablauf des session-timeout vor :?:

Nach her bin ich durch den Code mit Debuger ein Schritt nach andrem gelaufen, und habe ich bemerkt ich, dass der Fehler nach dem Reset und vor validate des Formes (wo das Checkbox aktiviert wurde) vorkommt, ich habe im Rest das Checkbox wieder auf false gesetz, hat es aber nicht viel geholfen Und weil ich wie Deine Gefühle Dir sagten!!!:
HLX hat gesagt.:
du hast erhebliche Wissenslücken in der Java-Web-Technologie.

habe ich mit meinen Arbeitskollegen den Code zusammen analisiert, sie konnten leider mir nicht weiter helfen und einer von denen meinte "die Benutzer unsere Webanwendungen benutzen unsere Anwendungen ganz schnell und gehen wider raus d.h.: (die Halbstunde des Tomcats) wird bestimmt reichen deshalb soll ich mich für dieses Problem nicht viel Zeit verlieren."

Aber weil ich mich nicht verloren geben wollte suchte ich im Internet :### nach einer möglichen Lösung, viel habe ich leider nicht gefunden, dann habe ich mein Problem hier beschrieben, ich hoffte dass jemand wird mir helfen können.
Aber nach Langer Diskussion mit Dir (HLX) kommst Du mir mit solchen Vorschlägen,
HLX hat gesagt.:
Schau mal im Eclipse-View "Servers" ob die Anwendung gestartet wurde. Mit Sicherheit gab es auch ne Fehlermeldung in der Konsole.
Prinzipiell sollte man beachten, wenn man unter Eclipse Web-Projekte entwickelt: Treten merkwürdige Fehler auf, sollte man sicherheitshalber den Tomcat neu starten. Ggf. schadet es auch nicht das Tomcat-Work-Directory zu säubern (View "Servers" --> rechte Maustaste auf den Tomcat --> Clean Tomcat Work Directory...)
dir ich allein und mit den Arbeitskollegen mehrmals versucht haben.

Also wenn Du keine Lust oder Zeit hast die andren zu helfen, dann bitte verschöne sie mindesten mit deinem Moralpredigen!!!
 
M

maki

Gast
HLX Tipp mit dem Filter ist Goldrichtig.

Dir ist die Ursache deines Problemes klar?
Wenn nicht: Die Session läuft ab, die Requests werden aber trotzdem weiterbearbeitet (da kein Filter läuft).
Irgendwann kommt der Request mit der abgelaufenen Session an eine Seite/Servlet, welche Daten aus der (nicht mehr vorhandenen) Session abfrägt, und da kracht es...
 

HLX

Top Contributor
Athro hat gesagt.:
Also wenn Du keine Lust oder Zeit hast die andren zu helfen, dann bitte verschöne sie mindesten mit deinem Moralpredigen!!!
Ich habe mehrfach versucht dir zu helfen. Aber irgendwie drehen wir uns hier ständig im Kreis. Dies klappt nicht, dann klappt das andere nicht, dann klappt das andere auf einmal wieder aber das eine (Filter) wurde dafür immer noch nicht richtig ausprobiert. Dazu kommen immer nur wenige und halbbrauchbare Informationen. So wird das Ganze zu einem Ratespiel, dass mit dem eigentlichen Problem nichts zu tun hat.

Wenn sich irgendwie mehrere Probleme anhäufen, die scheinbar mit dem eigentlichen Problem nichts zu tun haben (z.B. HTTP-404-Error), ist meistens gerenell was im Argen - dann liegt das nicht nur an einem Timeout-Fehler. Wenn die Infrastruktur nicht richtig läuft, ist es noch viel schwieriger bei einem speziellen Anwendungsproblem zu helfen.

Lange Rede kurzer Sinn: setzte dich mit ServletFiltern auseinander. Mit diesen kannst du auf die Anwendung einwirken, bevor Struts eingeschaltet wird. Das ist der Schlüssel zu Lösung deines Anwendungsproblems.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm Probleme mit einem AJAX-Call in einem dynamischen Webprojekt Web Tier 15
M JSF Probleme bei Navigation mit Verzeichnisswechsel Web Tier 2
W JSF Probleme mit Data Table Web Tier 8
W JSF Probleme mit Zugriff zur Managed Bean Web Tier 11
G Probleme mit Java + Tomcat | Cannot switch on a value of type String for source level below 1.7 Web Tier 8
F JSF Probleme mit OverlayPanel Web Tier 0
H Frameset durch Tabelle ersetzten - Probleme mit jsp:include Web Tier 3
xehpuk JSF URL-Encoding-Probleme bei <h:link> (Mojarra) Web Tier 4
M ejb @Remote macht probleme Web Tier 10
S JSF SelectOneMenu - Probleme mit AJAX Web Tier 6
W Probleme mit Expression language ? Web Tier 13
P JSF Datenbank Probleme (Limit, Wiederholung) Web Tier 8
J JSF JavaScript Probleme zwischen Tomahawk und Tiles!? Web Tier 2
B Probleme mit h:selectOneRadio Web Tier 2
T DWR - Probleme mit Konfiguration Web Tier 13
W JSF MyFaces Tomahawk Probleme Web Tier 4
G Probleme mit EclipseLink und Java.util.Date Web Tier 3
S JSF Probleme beim redirect im ExceptionHandler Web Tier 2
P JSF 1.2 Navigation probleme Web Tier 2
D Probleme beim installieren von WebBeans Web Tier 2
D Probleme mit Tomcat Web Tier 3
M Tomcat 6 Umlaut Probleme Web Tier 2
D Seam Example Probleme Web Tier 2
C Probleme mit JSPs in Unterverzeichnissen Web Tier 4
A [PrimeFaces] dataTable mit paginator Probleme Web Tier 2
H Probleme beim Aufrufen von Java- oder Servlet-Methoden aus Javascript Web Tier 2
0 JSF: css einbinden - Probleme Web Tier 2
M iframe probleme Web Tier 2
K [GWT] Probleme beim asynchronen Methodenaufruf mit GWT-RPC Web Tier 8
B Probleme mit RichFaces Web Tier 2
O struts2 - Probleme mit parametrisierten URLs Web Tier 5
E Probleme mit GWT & MySQL Web Tier 3
G Probleme mit Ajax Login (jsp) Web Tier 5
S Tomcat / Eclipse Probleme Web Tier 2
B Probleme mit <jsp:include page=""/> und Laufzeit Web Tier 7
P Zurück-Button des Browsers macht Probleme Web Tier 9
O Struts2: Probleme mit Links aus Packages raus Web Tier 9
A JSF+Glassfish: Probleme mit Managed Bean Web Tier 2
S Probleme mit den Nav_rules und HTML code Web Tier 2
D Probleme mit ServletRequest Web Tier 14
G Probleme mit Tomcat Web Tier 14
E RichFaces 3.2.1 Probleme Web Tier 4
W JSTL macht Probleme Web Tier 6
W JavaBeans class="" macht Probleme Web Tier 2
B Probleme mit Marquee Tag Web Tier 3

Ähnliche Java Themen

Neue Themen


Oben