zoukankan      html  css  js  c++  java
  • idea调试SpringMvc, 出现:”javax.servlet.ServletException: java.lang.IllegalStateException: Cannot create a session after the response has been committed"错误的解决方法

    调试拦截器出现以下错误:

    HTTP Status 500 - javax.servlet.ServletException: java.lang.IllegalStateException: Cannot create a session after the response has been committed

     

    type Exception report

    message javax.servlet.ServletException: java.lang.IllegalStateException: Cannot create a session after the response has been committed

    description The server encountered an internal error that prevented it from fulfilling this request.

    exception

    org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.IllegalStateException: Cannot create a session after the response has been committed
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:601)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:160)
    	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1282)
    	org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)
    	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
    	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
    	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
    	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    

    root cause

    javax.servlet.ServletException: java.lang.IllegalStateException: Cannot create a session after the response has been committed
    	org.apache.jsp.jsp.index_jsp._jspService(index_jsp.java:134)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:160)
    	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1282)
    	org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)
    	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
    	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
    	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
    	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    

    root cause

    java.lang.IllegalStateException: Cannot create a session after the response has been committed
    	org.apache.catalina.connector.Request.doGetSession(Request.java:2953)
    	org.apache.catalina.connector.Request.getSession(Request.java:2367)
    	org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:896)
    	javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:231)
    	org.apache.jasper.runtime.PageContextImpl.initialize(PageContextImpl.java:137)
    	org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:109)
    	org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:60)
    	org.apache.jsp.jsp.index_jsp._jspService(index_jsp.java:100)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    	org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:160)
    	org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
    	org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1282)
    	org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1037)
    	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:980)
    	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
    	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
    	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
    	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

    仔细检查是由于,我在函数preHandle中做了跳转,但返回值确是true.导致的。
        @Override
        public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
            System.out.println("------------------处理前---------------------");
            System.out.println("------------------" + httpServletRequest.getContextPath() + "index.jsp---------------------");
            httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + "/jsp/index.jsp");
            return true;
        }

    将返回值改为false,错误消失。

  • 相关阅读:
    [书目20071127]图书 时间陷阱 目录
    [文摘20071113]十四项心理定律
    Win2003下:JDK1.5 + Eclipse3.2 + Tomcat6.0 + tomcatPluginV32
    [转]初试eclipse mysql
    [转]测试工具
    [转]如何进行软件需求分析
    OA流程设计尝试:Div步骤拖动
    [转]需求分析的20条法则
    Eclipse 3.2 + Tomcat 5.5 + Lomboz 3.2 简单配置
    [转]软件项目管理中的风险管理研究
  • 原文地址:https://www.cnblogs.com/feiyujun/p/6595575.html
Copyright © 2011-2022 走看看