-
FEATURED COMPONENTS
First time here? Check out the FAQ!
Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4242535
By: stonegu
I'm doing some performance testing on an jsp & servlet based application that uses ZK framework. Everything is ok when I just use jsp & servlet, but when I installed ZK into my application (copy zk's web.xml into my application's web.xml and put zk's jars into tomcat's lib just like docs said), I start to see the following error when I logoff from my application.
----- Error Info -----
java.lang.IllegalStateException: Cannot create a session after the response has been committed
org.apache.catalina.connector.Request.doGetSession(Request.java:2214)
org.apache.catalina.connector.Request.getSession(Request.java:2024)
org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:831)
org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:842)
org.zkoss.zk.ui.http.WebManager.getSession(WebManager.java:324)
org.zkoss.zk.ui.http.DHtmlLayoutFilter.process(DHtmlLayoutFilter.java:78)
org.zkoss.zk.ui.http.DHtmlLayoutFilter.doFilter(DHtmlLayoutFilter.java:105)
----- End -----
----- System Info -----
WinXP, Tomcat 5.5, ZK 2.2.1
----- End -----
----- Code for Sign out ----
<%
if (request.getParameter("logoff") != null) {
session.invalidate();
response.sendRedirect("myallonline.jsp?ordercol=m_datetime&sort=desc");
return;
}
%>
----- End -----
I did some research on the net, and was told that the problem maybe in
session.invalidate() or response.sendRedirect, but I can't find any solution.
Any suggestion will be highly appreciated!
Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4245098
By: jumperchen
Hi,
It works fine for me.
Could you provide more information about your code.
Thanks
Jumper
Orignial message at:
https://sourceforge.net/forum/message.php?msg_id=4248611
By: stonegu
Thanks Jumper, more details are here:
I have one jsp page, I call it myallonline.jsp:
----- code for myallonline.jsp ------
...
<%
if (request.getParameter("logoff") != null) {
session.invalidate();
response.sendRedirect("myallonline.jsp?ordercol=m_datetime&sort=desc");
return;
}
%>
...
<html xmlns="http://www.w3.org/1999/xhtml">
...
<a href='<%= response.encodeURL("myallonline.jsp?logoff=true") %>'>Sign out.</a> ...
</html>
----- End -----
Problem:
Everytime I click "Sign out" in myallonline.jsp, I get next error message:
----- Error Info -----
java.lang.IllegalStateException: Cannot create a session after the response has been committed
org.apache.catalina.connector.Request.doGetSession(Request.java:2214)
org.apache.catalina.connector.Request.getSession(Request.java:2024)
org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:831)
org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:842)
org.zkoss.zk.ui.http.WebManager.getSession(WebManager.java:324)
org.zkoss.zk.ui.http.DHtmlLayoutFilter.process(DHtmlLayoutFilter.java:78)
org.zkoss.zk.ui.http.DHtmlLayoutFilter.doFilter(DHtmlLayoutFilter.java:105)
----- End -----
I already find a solution for this, I redirect url to another page (for example <a href='<%= response.encodeURL("logout_confirm.jsp?logoff=true") %>'>Sign out.</a>) instead of same page (<a href='<%= response.encodeURL("myallonline.jsp?logoff=true")
%>'>Sign out.</a>), and kill the session in logout_confirm.jsp
----- code in logou_confirm.jsp -----
<%
if (request.getParameter("logoff") != null) {session.invalidate();}
if (request.getSession(false) == null){session=request.getSession(true);}
else{session=request.getSession(false);}
%>
----- End -----
Any suggestion...
Thanks
Stone
Asked: 2007-04-04 04:02:27 +0800
Seen: 1,077 times
Last updated: Apr 07 '07