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,错误消失。

  • 相关阅读:
    【转】Web Service单元测试工具实例介绍之SoapUI
    【节选】刘积仁:怎样才是真正的创业者
    xadmin引入django-import-export导入功能
    django使用xadmin
    Mac Docker安装Redis4.0
    JMeter+Maven+CSV数据驱动
    Selenium+TestNG+CSV数据驱动
    JMeter压测时报“内存不足”故障的9个简单解决方案
    requests+unittest+ddt+xlrd+pymysql+BeautifulReport数据驱动
    Mac Docker安装MySQL5.7
  • 原文地址:https://www.cnblogs.com/feiyujun/p/6595575.html
Copyright © 2011-2022 走看看