Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

AtmosphereServlet does not delegate to the default servlet if no filter matches #595

Closed
papegaaij opened this Issue · 11 comments

5 participants

@papegaaij

When the last filter in the chain calls AtmosphereFilterChain.doFilter, a ServletException is thrown with "No Servlet Defined". If you look at https://github.com/papegaaij/wicket-atmosphere-quickstart , the AtmosphereServlet is mapped to /app and delegates to WicketFilter. Opening /foobar will give a 404, while opening /app/foobar gives a 500. This second url, which is not processed by the WicketFilter, should delegate to the same DefaultServlet and also give a 404.

@jfarcand
Owner

Salut, not sure it is a bug but agree Atmosphere could do better. Working on it.

@jfarcand jfarcand closed this
@drzewo

I don't quite think this is a valid solution to the original issue. It appears that filter-only based applications (like apache wicket) do not initialize at all, as there is no servlet declared in web.xml (or otherwise in the webapp), In fact it is WicketFilter's chore to delegate to default servlet if it is not slated for servicing the request for the particular resource.

@jfarcand
Owner

@drzewo Can you elaborate? Are you saying installing a filter without with Atmosphere doesn't work?

@drzewo

Just go grab emond's quickstart app, update atmosphere dependency to 1.0.1 and deploy. It won't even initialize properly, while atmosphere 1.0.0 works pretty nice. Although it fails on delegating request processing to default servlet: Wicket filter performs chain.doFilter(request,response) whenever request for some e.g. static resource should be processed by some other entity, most probably DefaultServlet. ATM, I can't think of anything that mimics this behaviour to be performed in AtmosphereFilterChain.doFilter().

@jfarcand
Owner

This buh has been fixed (broken in 1.0.1) and will be available with 1.0.2.

@esajjkh

Hi,
I'm testing custom error pages for https://github.com/papegaaij/wicket-atmosphere-quickstart application. I modified quickstart application for this purpose and error pages are configured in web.xml like this:

<error-page>
        <error-code>403</error-code>
        <location>/error/error404</location>
    </error-page>
    <error-page>
        <error-code>404</error-code>
        <location>/error/error404</location>
    </error-page>
    <error-page>
        <error-code>503</error-code>
        <location>/error/error404</location>
    </error-page>
    <error-page>
        <error-code>500</error-code>
        <location>/error/error404</location>
    </error-page>

and error page is mounted as:
mountPage("error/error404", Error404.class);

I'm supposed to get my Error404 page when url is /app/foobar or /foobar . Am I missing something?

@esajjkh

oops my tags are disappeared from my post, anyways error pages are confiured by using error-page main tag followed by error-code and error-location.
Thank you

@jfarcand
Owner

Salut, can you share a test case?

@esajjkh

Yahoo, it works with wicket 6.2.0 and atmosphere 1.0.2 :)

@Floaz

But doesn't work with Wicket 6.6.0 and atmosphere 1.0.8. :-(
Same as above.

@jfarcand
Owner

@Floaz Try with 1.0.12...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.