java.lang.IllegalStateException: невозможно создать сеанс после фиксации ответа

У меня есть действительно странный запрос на недопустимый URL-адрес:

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)
...

Как я могу решить эту проблему?


person Florin    schedule 08.12.2010    source источник


Ответы (2)


Происходит то, что поток ответов был закрыт. Либо вы уже отправили перенаправление, либо совершили ответ другого типа. Я рекомендую получить ваш объект сеанса, прежде чем выполнять какой-либо ответ, и сохранять ответ до тех пор, пока не останется ничего общего с объектами HttpServletRequest или HttpServletResponse.

Хорошей практикой является возврат из вашего сервлета сразу после выполнения перенаправления, таким образом вы можете избежать некоторых из этих проблем.

person Berin Loritsch    schedule 08.12.2010
comment
Хорошей практикой является возврат из вашего сервлета сразу после выполнения перенаправления, таким образом вы можете избежать некоторых из этих проблем. - person reallynice; 12.05.2014
comment
Может кто-нибудь дать нам пример кода, потому что я столкнулся с той же проблемой - person Shessuky; 15.01.2020

У меня была эта проблема из-за нескольких тегов <h:outputScript target="head">

person Vlad    schedule 21.11.2011