I am working on a web application with jsp and servlets.
My Servlet name is ServletBulkCrdProm
and I redirect to jsp page in the method doBulkCrdSelect()
which is called by Servlet's doPost()
method.
In my servlet, I forward the request to a jsp page like this.
dispatcher = getServletContext().getRequestDispatcher("/bulkPromotion/BulkPromCrdList.jsp");
dispatcher.forward(req, res);
return;
This works without any issue. I submit the jsp form like this.
<form id="dataform" name="dataform" method="<%=WebConstants.HTML_FORM_SUMIT_METHOD%>" action="<%=ServletMapConst.SERVLET_NAME%>">
Problem is when I submit the jsp page again ( which contains a form and handled by the same servlet but a different method named doBulkCrdUpload()
which again called by doPost()
method of servlet) I get this error.
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)
What I am doing wrong here? Can someone please help me to solve the issue.A help is much appreciated.
If do you have servlet request in your method, try to get dispatcher from it, instead of servletContext
dispatcher = request.getRequestDispatcher("/bulkPromotion/BulkPromCrdList.jsp");
Also there is could be issue at another part of your code, that isn`t shown in this question.
Also pay attention at your forwards. should be only one by stack trace.