java.lang.IllegalStateException:在提交响应后无法创建会话

时间:2010-12-08 22:50:31

标签: exception session response state cgi-bin

我对这个无效网址提出了这个非常奇怪的请求:

Invalid URL: /cgi-bin/1st.cgi

这导致以下错误:

 SEVERE: Exception initializing page context
java.lang.IllegalStateException: Cannot create a session after the response has been committed
        at org.apache.catalina.connector.Request.doGetSession(Request.java:2381)
        at org.apache.catalina.connector.Request.getSession(Request.java:2098)
        at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
        at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
        at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:544)
...

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

正在发生的事情是响应流已关闭。您已经发送了重定向,或者提交了其他类型的响应。我建议您在执行任何响应之前获取会话对象,并保存响应,直到与HttpServletRequestHttpServletResponse对象无关。

一个好的做法是在执行重定向后立即从Servlet返回,这样就可以避免出现这些问题。

答案 1 :(得分:3)

由于多个标记<h:outputScript target="head">

,我遇到了这个问题