This was a bug. See WICKET-896. Thanks for reporting, it is fixed now. Eelco
On 8/20/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Short description :- > When using mounted pages, wicket redirects to wrong URL, after > BrowserInfoPage, which > is called by Session.get().getClientInfo(), when gatherExtendedBrowserInfo is > true in > RequestCycleSettings. > > Long description :- > > I need to determine the Client's time zone in my webapplication. > So I have set getRequestCycleSettings().setGaterExtendedBroserInfo(true) in > my application class. > > And in my BasePage.java's (which is the super class for all my pages) > constructor > I have set getSession().getClientInfo(), to trigger the redirect to > BrowserInfoPage as per the javadocs. > > My webapp context is /scheduler/ and my wicket application is mapped to /app/ > (i.e. /scheduler/app/ ). > I have kept all my pages in one package and mounted that package to "/pages", > ie. > the pages are accessed via http://host/scheduler/app/pages/XYZPage etc. > > When I submit the request to > http://host/scheduler/app/ > > This is what happens (I have recorded the HTTP traffic via wireshark). > GET http://host/scheduler/app/ > Temporary Redirect to http://host/scheduler/app/pages/HomePage (this is my > home page). > GET http://host/scheduler/app/pages/HomePage > Temporary Redirect to http://host/scheduler/app/pages/../;jsessionID=...... > (this is the BrowserInfo Page). > GET http://host/scheduler/app/;JSESSIONID=..... (get the browser info page). > POST to browser info page. > Temporary redirect to > http://host/scheduler/app/pages/../../app/pages/HomePage (redirect from > browser info page, after it has populated ClientProperties). > > > The problem is that last redirect is wrong. > The path http://host/scheduler/app/pages/../../app/pages/HomePage > translates to http://host/app/pages/HomePage > > i.e. I lose the webapp context path (/scheduler/) because of the path being 2 > levels up. > and I get a 404 after that. > > I suspect the culprit is the > throw new RestartResponseAtInterceptPageException(new > BrowserInfoPage(getRequest().getRelativePathPrefixToContextRoot() + > getRequest().getURL())); > > > In WebRequestCycle.java. > > The getRelativePathPrefixToContextRoot() is computed wrongly > as /scheduler/app/../.. instead of /scheduler/app/.. because the context root > is /scheduler/ and not "/" > > Any thoughts on how to fix this ? > > thanks > bhaskar > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
