Fehlermeldung beim redirect in der JSP

Status
Nicht offen für weitere Antworten.

freez

Top Contributor
Hallo,

ich habe ein kleines Problem beim redirect:

Code:
        if(!request.isRequestedSessionIdValid()){
			response.sendRedirect("./site2.jsp");
		}
		
		HttpSession httpsession = request.getSession(false);
		aur.xmlMenuBean xmb = (aur.xmlMenuBean)httpsession.getAttribute("xmlMenuBean");

		if(xmb == null || xmb.getDoc() == null){
			response.sendRedirect("./site2.jsp");
		}

in Zeile 9 bringt er folgenden Fehler (in der Fehlermeldung "at org.apache.jsp.work.site_jsp._jspService(site_jsp.java:53)"):
Code:
23.11.2006 19:42:15 org.apache.catalina.core.StandardWrapperValve invoke
SCHWERWIEGEND: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException
	at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:432)
	at org.apache.jsp.work.site_jsp._jspService(site_jsp.java:53)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	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:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	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 sehe keinen Fehler ... was ist an der Zeile verkehrt? Die Datei "site2.jsp" existiert.
 

bronks

Top Contributor
Ich nehme an, daß vor dem sendRedirect() ein OutStream aufgemacht wude. sendRedirect() funktioniert nur, wenn noch keine Daten geschrieben wurden.
 

freez

Top Contributor
Du hast Recht :) Nur wie umgehe ich das ganze? Ich habe den Code schon ganz oben in der JSP drin und der Code zur JSP schaut so aus:

Code:
public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {

    JspFactory _jspxFactory = null;
    PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;
    PageContext _jspx_page_context = null;


    try {
      _jspxFactory = JspFactory.getDefaultFactory();
      response.setContentType("text/html");
      pageContext = _jspxFactory.getPageContext(this, request, response,
      			null, true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;


        if(!request.isRequestedSessionIdValid()){
			response.sendRedirect("./nav.htm?id=010000");
		}
		
		HttpSession httpsession = request.getSession();
		aur.xmlMenuBean xmb = (aur.xmlMenuBean)httpsession.getAttribute("xmlMenuBean");

		if(xmb == null || xmb.getDoc() == null){
			response.sendRedirect("./nav.htm?id=020000");
		}

      out.write(" \r\n");
.... something more

Und in der JSP selbst schaut es so aus:

Code:
<%
        if(!request.isRequestedSessionIdValid()){
			response.sendRedirect("./nav.htm?id=010000");
		}
		
		HttpSession httpsession = request.getSession();
		aur.xmlMenuBean xmb = (aur.xmlMenuBean)httpsession.getAttribute("xmlMenuBean");

		if(xmb == null || xmb.getDoc() == null){
			response.sendRedirect("./nav.htm?id=020000");
		}
%> 
<!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">
<link rel="stylesheet" type="text/css" href="nav.css" media="screen,projection" />
<title>Navigation</title>
</head>
... something more

wie kriege ich das jetzt hin, daß mein Code vor "out = pageContext.getOut();" ausgeführt wird?
 

freez

Top Contributor
Hallo,

ich habe nun eine Lösung für mein Problem, welche aber net so ganz 100%ig ist. Ich lasse den Browser per meta Tag ein forward machen, wenn bestimmte Bedingungen erfüllt sind. Allerdings ist es noch sehr unschön, da die ganze Seite erst einmal angezeigt wird, bevor der Browser den forward macht. Vielleicht weiß ja jemand, wie ich das doch noch per request.sendRedirect() machen kann. Das wäre natürlich viel schöner :)

Hier der Code dazu:
Code:
<%@ page contentType="text/html; charset=ISO-8859-15" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%
      if(!request.isRequestedSessionIdValid()){
%><meta http-equiv="refresh" content="0; URL=login.jsp"><%
      }
      
      HttpSession httpsession = request.getSession();
      aur.xmlMenuBean xmb = (aur.xmlMenuBean)httpsession.getAttribute("xmlMenuBean");

      if(xmb == null || xmb.checkState(aur.xmlMenuBean.STATE_NEW)){
%><meta http-equiv="refresh" content="0; URL=login.jsp"><%
      }
%>

Solche Sachen werden doch bestimmt öfter in JSP's gebraucht. Dazu muß doch jemand ein Beispiel haben. Geht das vielleicht mit JSF's besser?
 

freez

Top Contributor
Hallo,

ich wollte einen kleinen Statusbericht abgeben, wie es nun mit dem redirect so läuft.

Ich habe mir das ix Tutorial zu JSF auf heise.de gekauft (3x 90ct.) ... Ausgaben 4/2006 bis 6/2006. Kleine Wertung meinerseits: Für einen groben Überblick reichts. Durch das Tutorial führt ein Beipiel, auf welches aber zu wenig eingegangen wird.

Ausserdem habe ich mir die "myEclipseIDE" zum testen gedownloaded und mal versucht mein Projekt in JSF umzusetzen. Anfangs mit leichten Problemen aber im Endeffekt ist mein Projekt jetzt einfacher geworden. Vor allem benötige ich bis jetzt kein Servlet. Finde ich schon recht interessant.

Naja, und zu dem Problem mit dem redirect: Es funktioniert hervorragend. Ich kann in meiner Seite ein paar Statusabfragen machen und bei Bedarf auf eine andere Seite umleiten. Super. So, wie ich es mir vorgestellt habe.

Vielen Dank, an die, die sich die Mühe für mich gemacht haben zu antworten :) .

Beste Grüße
Denis
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Fehlermeldung beim ausführen des Clients // Need Help Allgemeines EE 2
L JSP Fehlermeldung bei Verwendung von Java-Expression-Language Allgemeines EE 8
O Hibernate Fehlermeldung bei start des Servers Allgemeines EE 2
Kenan89 Fehlermeldung bei misslungener Anmeldung Allgemeines EE 8
D Fehlermeldung hs_err_pid4104 - Editor Allgemeines EE 8
Y JSF Komische Fehlermeldung nach Deployment und Serverstart Allgemeines EE 5
B ich kann mit dieser fehlermeldung nix anfangen? Allgemeines EE 5
K Dateipfad in Fehlermeldung nicht nachvollziehbar Allgemeines EE 3
K Fehlermeldung bei Serverapplikation Allgemeines EE 3
M Fehlermeldung von Class an anderes Servlet und dann in JSP Allgemeines EE 5
G jboss fehlermeldung Allgemeines EE 4
N Validierung:häßliche Fehlermeldung, wie überschreibe ich sie Allgemeines EE 4
F kryptische Fehlermeldung Allgemeines EE 2
B Sun Application Server 8 --- Nichtsaussagende Fehlermeldung Allgemeines EE 2
B Exception - kann mit der Fehlermeldung nix anfangen Allgemeines EE 3
D Login - unbekannte Fehlermeldung Allgemeines EE 3
D Hilfe beim Quartz Scheduler Allgemeines EE 11
D Probleme beim Umstieg auf Jakarta EE Allgemeines EE 5
K Konfiguration beim AppServer Allgemeines EE 4
A JPA Fehler beim JPA-Projekt Allgemeines EE 12
M Servlet Fehler beim Start der Serveranwendung Allgemeines EE 3
B @Startup - FileWatcher - Probleme beim Hochfahren des Servers Allgemeines EE 4
I Erhöhte Sicherheit beim Login Allgemeines EE 1
S MessageDrivenBean Problem beim Zugriff auf Stateful EJB Allgemeines EE 2
S OpenJPA-Exception beim Tomee Allgemeines EE 0
B Problem beim Lesen des Codes... Allgemeines EE 2
R JPA Problem beim Speichern eines Users Allgemeines EE 2
D Jboss löscht Archiv nicht beim Redeployed Allgemeines EE 3
Fu3L Probleme beim Einrichten Allgemeines EE 3
B Cookie beim erstem Zugriff auf Web-App ablegen Allgemeines EE 3
J Fehler beim deployen von seam 2.2.2-Projekt Allgemeines EE 9
B Problem beim einbinden einer CSS in eine JSP Allgemeines EE 8
S Eclipse: Teilmodule beim Testen werden nicht gestartet Allgemeines EE 2
S Embedded JBoss Problem beim Deployment Allgemeines EE 4
H fehler beim deployen von ear file Allgemeines EE 2
G Exception beim versenden einer Mail Allgemeines EE 3
A Tomcat, Exceptions beim redeploy Allgemeines EE 4
H GWT Problem beim Ausführen Allgemeines EE 8
E Performance-Problem beim ersten Request Allgemeines EE 4
MQue URL im Brower beim Starten der Anwendung richtig setzen Allgemeines EE 4
M J2EE beim SCJA Allgemeines EE 4
M JSP: Tomcat: Serverfehler 500 nur beim IE. Allgemeines EE 2
M Absturz beim Einbinden des PostgreSQL-Treibers Allgemeines EE 4
K BatchUpdateException beim schreiben in DB Allgemeines EE 12
M EJB Löschen von DB-Daten beim Deployen verhindern Allgemeines EE 2
M tomcat beim booten mit starten Allgemeines EE 4
G JBoss nutzt beim starten ständig das Root.war Allgemeines EE 12
P jar-File aus war-File beim Deploy automatisch entpacken Allgemeines EE 2
M servlet --> jsp - problem beim umstrukturieren Allgemeines EE 5
T Probleme beim Einsatz von J2EE / JBoss Allgemeines EE 4
F Wie Heapsize beim Tomcat erhöhen? Allgemeines EE 3
G suche Hilfe beim TreeView Servlet Allgemeines EE 8
A Problem / Fehler beim Einbinden einer Klasse in ein JSP Allgemeines EE 20
N Wie heisst das was der Client beim Http Server anfragt? Allgemeines EE 6
F richtige vorgehensweise beim logout Allgemeines EE 6
F Package beim Cookie-setzten über BEAN nicht gefunden Allgemeines EE 4
T Design/Performance-Frage beim servlet (static oder nicht) Allgemeines EE 35
F Fehler beim deployen von jsp und servlet Allgemeines EE 7
M NetBeans 5.5 installiert und schon hängt was beim Deployen Allgemeines EE 5
G Servlet beim Absenden eines Formulars aufrufen Allgemeines EE 11
M Probleme beim Performancetuning des Servlets Allgemeines EE 2
T Änderung des Wertes einer Variable beim Klick auf Link Allgemeines EE 7
K [Sun AppServer 8.1] Fehler beim deployen Allgemeines EE 12
FsMarine Probleme beim ausführen von JSP dateien unter Tomcat Allgemeines EE 4
M Probleme beim Webservice Deployment(Sun ApplicationServer) Allgemeines EE 2
B Problem beim Deployen auf Sun AS 8.1 Allgemeines EE 12
R Problem beim hochladen einer Web Application Allgemeines EE 16
H Problem beim Umstieg von 1.3 auf 1.4 Allgemeines EE 5
pkm Gibt es einen Redirect von der Tomcatstartseite auf ein Projekt? Allgemeines EE 4
S Play Framework: Redirect im Routing auf Scala Seite Allgemeines EE 0
M JSF JSF Redirect zu Requested URL nach Login Allgemeines EE 6
W redirect in neuem Fenster? Allgemeines EE 8
K Servlet: Respone.redirect mit POST-Parametern Allgemeines EE 5

Ähnliche Java Themen

Neue Themen


Oben