响应已提交 - java.lang.IllegalStateException:UT010019
Response already commited - java.lang.IllegalStateException: UT010019
我正在使用 jsp 和 servlet 开发 Web 应用程序。
我的 Servlet 名称是 ServletBulkCrdProm
,我在方法 doBulkCrdSelect()
中重定向到 jsp 页面,该方法由 Servlet 的 doPost()
方法调用。
在我的 servlet 中,我将请求转发到这样的 jsp 页面。
dispatcher = getServletContext().getRequestDispatcher("/bulkPromotion/BulkPromCrdList.jsp");
dispatcher.forward(req, res);
return;
这没有任何问题。我这样提交 jsp 表格。
<form id="dataform" name="dataform" method="<%=WebConstants.HTML_FORM_SUMIT_METHOD%>" action="<%=ServletMapConst.SERVLET_NAME%>">
问题是当我再次提交 jsp 页面时(它包含一个表单并由同一个 servlet 处理,但名为 doBulkCrdUpload()
的不同方法再次由 doPost()
方法调用servlet)我得到这个错误。
java.lang.IllegalStateException: UT010019: Response already commited
at io.undertow.servlet.spec.ServletOutputStreamImpl.resetBuffer(ServletOutputStreamImpl.java:712)
at io.undertow.servlet.spec.HttpServletResponseImpl.resetBuffer(HttpServletResponseImpl.java:494)
at javax.servlet.ServletResponseWrapper.resetBuffer(ServletResponseWrapper.java:241)
at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:167)
at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:147)
at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:111)
at bulkCrdProm.ServletBulkCrdProm.doBulkCrdSelect(ServletBulkCrdProm.java:401)
at bulkCrdProm.ServletBulkCrdProm.doPost(ServletBulkCrdProm.java:101)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:90)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at sessionhandler.SessionFilter.doFilter(SessionFilter.java:610)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
我在这里做错了什么?有人可以帮我解决吗 issue.A 非常感谢帮助。
如果您的方法中有 servlet 请求,请尝试从中获取调度程序,而不是 servletContext
dispatcher = request.getRequestDispatcher("/bulkPromotion/BulkPromCrdList.jsp");
您的代码的另一部分也可能存在问题,此问题未显示。
还要注意你的前锋。堆栈跟踪应该只有一个。
我正在使用 jsp 和 servlet 开发 Web 应用程序。
我的 Servlet 名称是 ServletBulkCrdProm
,我在方法 doBulkCrdSelect()
中重定向到 jsp 页面,该方法由 Servlet 的 doPost()
方法调用。
在我的 servlet 中,我将请求转发到这样的 jsp 页面。
dispatcher = getServletContext().getRequestDispatcher("/bulkPromotion/BulkPromCrdList.jsp");
dispatcher.forward(req, res);
return;
这没有任何问题。我这样提交 jsp 表格。
<form id="dataform" name="dataform" method="<%=WebConstants.HTML_FORM_SUMIT_METHOD%>" action="<%=ServletMapConst.SERVLET_NAME%>">
问题是当我再次提交 jsp 页面时(它包含一个表单并由同一个 servlet 处理,但名为 doBulkCrdUpload()
的不同方法再次由 doPost()
方法调用servlet)我得到这个错误。
java.lang.IllegalStateException: UT010019: Response already commited
at io.undertow.servlet.spec.ServletOutputStreamImpl.resetBuffer(ServletOutputStreamImpl.java:712)
at io.undertow.servlet.spec.HttpServletResponseImpl.resetBuffer(HttpServletResponseImpl.java:494)
at javax.servlet.ServletResponseWrapper.resetBuffer(ServletResponseWrapper.java:241)
at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:167)
at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImplSetup(RequestDispatcherImpl.java:147)
at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:111)
at bulkCrdProm.ServletBulkCrdProm.doBulkCrdSelect(ServletBulkCrdProm.java:401)
at bulkCrdProm.ServletBulkCrdProm.doPost(ServletBulkCrdProm.java:101)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:90)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at sessionhandler.SessionFilter.doFilter(SessionFilter.java:610)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
我在这里做错了什么?有人可以帮我解决吗 issue.A 非常感谢帮助。
如果您的方法中有 servlet 请求,请尝试从中获取调度程序,而不是 servletContext
dispatcher = request.getRequestDispatcher("/bulkPromotion/BulkPromCrdList.jsp");
您的代码的另一部分也可能存在问题,此问题未显示。
还要注意你的前锋。堆栈跟踪应该只有一个。