Response being committed, means something in your chain, your servlet, your filter, or your CustomResponseWrapper has already started to write a response, and the effort to add a new session cookie cannot be performed at that point in time.
Look closer at com.shandianshua.satoshi.online.api.http.filter. ContentEnteiFilter.doFilter(ContentEnteiFilter.java:51) Once the response headers have been sent, the response is "committed" and changes to the response / headers can no longer be made. The last call in your stacktrace, to Request.getSession() is attempting to add an outgoing cookie for the session to the response, but the response has already been started. -- Joakim Erdfelt <[email protected]> webtide.com <http://www.webtide.com/> - intalio.com/jetty Expert advice, services and support from from the Jetty & CometD experts eclipse.org/jetty - cometd.org On Thu, Oct 9, 2014 at 8:12 AM, Pikachu Absol <[email protected]> wrote: > Hi, > > I write a filter to do something for the response, and host the war in Stable > 9.2.3.v20140905 > > public void doFilter ( > ServletRequest request, > ServletResponse response, > FilterChain chain > ) throws IOException, ServletException { > HttpServletRequest httpRequest = (HttpServletRequest) request; > HttpServletResponse httpResponse = (HttpServletResponse) response; > > CustomResponseWrapper wrapper = > new CustomResponseWrapper(httpResponse); > LOG.info("============is commited:\t" + response.isCommitted()); > * chain.doFilter(request, wrapper);* > > // code never get here > } > > I got the an exception below: > > 2014-10-09 22:58:23.124:WARN:oejs.ServletHandler:qtp2128697132-18: > /v1/hello > java.lang.IllegalStateException: Response is committed > at org.eclipse.jetty.server.Request.getSession(Request.java:1401) > at > org.eclipse.jetty.security.authentication.FormAuthenticator.validateRequest(FormAuthenticator.java:260) > at > org.eclipse.jetty.security.authentication.DeferredAuthentication.authenticate(DeferredAuthentication.java:68) > at > org.eclipse.jetty.server.Request.getUserPrincipal(Request.java:1480) > at > org.springframework.web.servlet.FrameworkServlet.getUsernameForRequest(FrameworkServlet.java:1022) > at > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:958) > at > org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:816) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) > at > org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:801) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:769) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1667) > at > org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:172) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) > at > com.shandianshua.satoshi.online.api.http.filter.ContentEnteiFilter.doFilter(ContentEnteiFilter.java:51) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) > at > org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553) > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) > at > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) > at > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) > at org.eclipse.jetty.server.Server.handle(Server.java:497) > at > org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) > at > org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248) > at > org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:610) > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:539) > at java.lang.Thread.run(Thread.java:745) > > Since I can't find any solutions or similar cases on Google, I switch to > Stable > 8.1.16.v20140903 with the exactly same war, and then the problem just > disappear, everything runs fine. > > Can somebody help ? > > Thanks! > > _______________________________________________ > jetty-users mailing list > [email protected] > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/jetty-users >
_______________________________________________ jetty-users mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/jetty-users
