2010-12-08 64 views
0

J'ai cette demande vraiment étrange pour une URL invalide:java.lang.IllegalStateException: Impossible de créer une session après la réponse a été commise

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

Cela provoque l'erreur suivante:

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

Comment puis-je résoudre ce problème?

Répondre

3

Ce qui se passe est que le flux de réponse a été fermé. Soit vous avez déjà envoyé une redirection, soit engagé un autre type de réponse. Je recommande d'obtenir votre objet de session avant d'effectuer une réponse, et enregistrez la réponse jusqu'à ce qu'il n'y ait plus rien à faire avec les objets HttpServletRequest ou HttpServletResponse.

Il est recommandé de revenir immédiatement de votre servlet après avoir effectué une redirection. Vous éviterez ainsi certains de ces problèmes.

+1

« Une bonne pratique est de revenir de votre Servlet tout de suite après avoir effectué une redirection, de cette façon vous pouvez éviter certains de ces problèmes » bon point, parmi les autres, ça a fait l'affaire pour moi. – reallynice

3

J'ai eu ce problème en raison de la balise multiple <h:outputScript target="head">