Joakim - thanks for your response. I have been using ProxyServlet.Transparent, but I see the same result if I use AsyncProxyServlet or AsyncProxyServlet.Transparent
I'm actually creating a subclass of ProxyServlet.Transparent so that I can change how the AsyncContext is started. Currently it is started with " request.startAsync() <http://download.eclipse.org/jetty/stable-9/xref/org/eclipse/jetty/proxy/ProxyServlet.html#438>", which I believe will overwrite the async context that was started by a filter. So I change that to first check if isAsyncStarted(), and if so, then call request.getAsyncContext() to make use of the existing context. I'm not 100% sure of this is a Jetty bug, or if the proxy needs to ignore any existing AsyncContext. Thanks. On Fri, Jul 18, 2014 at 10:31 AM, Joakim Erdfelt <[email protected]> wrote: > Are you using ProxyServlet ? > > > http://download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/proxy/ProxyServlet.html > > or AsyncProxyServlet ? > > > http://download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/proxy/AsyncProxyServlet.html > > Generally, accessing the raw Jetty internal Request object is a bad idea. > There so many potential levels and wrappers in the way that accessing that > object is often impossible or impractical from a filter. > If you can use the ServletRequest and/or HttpServletRequest then do so. > > It might make more sense to just use the AsyncProxyServlet instead. > > Also note that the HttpChannel concepts are not guaranteed to be the same > once HTTP/2 is in the picture. > Since with HTTP/2 you have 1 physical connection with multiple HTTP/2 > streams + requests. > We're still working on HTTP/2, so this statement isn't written in stone. > (see the jetty-http2 branch) > > > -- > 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 Fri, Jul 18, 2014 at 6:36 AM, Matt Deimel <[email protected]> wrote: > >> I'm attempting to make SiteMesh3 an asynchronous filter so that it will >> work with Jetty's asynchronous ProxyServlet.Transparent proxy. Everything >> appears to work until the SiteMesh filter hands off to Jetty - specifically >> in ServletHandler.doFilter(). The NullPointerException happens on the first >> line of that method (line 1628 for jetty-proxy 9.2.1.v20140609). When I >> debug into it I see that the request is *not* an instance of Request, and >> HttpChannel.getCurrentHttpChannel() is null, which is why it throws a NPE >> when trying to call getRequest(). >> >> My question is this - is there any way for me to initialize or setup >> HttpChannel, or is that completely outside of what I should be doing when I >> use the Jetty proxy? Thanks so much for your help. >> >> @Override >> public void doFilter(ServletRequest request, ServletResponse >> response) >> throws IOException, ServletException >> { >> final Request baseRequest=(request instanceof >> Request)?((Request)request):HttpChannel.getCurrentHttpChannel().getRequest(); >> >> >> _______________________________________________ >> 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 >
_______________________________________________ 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
