Wicket version: 1.4-rc1
Hi,
I'm very new to Wicket, so I'm probably making a simple mistake that I
overlooked. Thank you for your insights ahead of time.
I have a small wicket application consisting of about 8-10 pages -
interconnected by ~50% links and ~50% form submissions.
Now everything was (is) fine until I mounted the single package
containing all of my web pages. Then all of my links in the application are
converted from the Wicket default (e.g.
http://localhost:8080/?wicket:bookmarkablePage=:my.package.MyPage) to the
mounted format (e.g. http://localhost:8080/pages/MyPage/). That much is
fine; all the links still work.
However, none of my form submissions work - they all result in
PageExpiredException (no form or button onSubmit() methods are called) and
are redirected to the page expired error page. I have done some debugging,
and it seems to me that the problem lies in the fact that
org.apache.wicket.Session: line 771
pageMap.get(Integer.parseInt(id), versionNumber);
returns null.
Interestingly, I tested whether Wicket still understands its
default/canonical URL form by going to
http://localhost:8080/?wicket:bookmarkablePage=:my.package.MyPage directly
via the browser URL field. That works, and what's more, immediately after
that, all my form submissions work and pageMap.get() returns a valid Page!
To me this seems like the Application may need to be initialized
somehow that I am not doing, or perhaps I am calling the mount() method at
the wrong time. Here are code snippets for my custom application:
package my.package;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.spring.injection.annot.SpringComponentInjector;
public class MyApplication extends WebApplication {
public MyApplication() {
}
@Override
public void init() {
addComponentInstantiationListener(new
SpringComponentInjector(this,
mySpringApplicationContext));
getApplicationSettings().setPageExpiredErrorPage(MyExpiredPage.class);
getApplicationSettings().setAccessDeniedPage(MyAccessDeniedPage.class);
getApplicationSettings().setInternalErrorPage(MyInternalErrorPage.class);
getExceptionSettings().setUnexpectedExceptionDisplay(IExceptionSettings.SHOW_INTERNAL_ERROR_PAGE);
mount("pages", PackageName.forClass(MyPage.class));
// mountBookmarkablePage("MyPage", MyPage.class);
}
}
Interestingly, the code (and forms) works if I uncomment the line that
only
mounts a single page and comment out the previous line that mounts the
entire package.
Thanks again for any help you can offer!
--
View this message in context:
http://www.nabble.com/PageExpiredException-after-mounting-WebPage-package-tp22426042p22426042.html
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]