Updated the wiki "Request Cycle in Wicket 1.5<https://cwiki.apache.org/confluence/display/WICKET/RequestCycle+in+Wicket+1.5> "
On Wed, Aug 29, 2012 at 3:31 PM, James Eliyezar <[email protected]> wrote: > That was fast Martin. I'm working on the wiki now. > > > On Wed, Aug 29, 2012 at 3:27 PM, Martin Grigorov <[email protected]>wrote: > >> >> https://git-wip-us.apache.org/repos/asf/wicket/repo?p=wicket.git;a=commitdiff;h=a5a1fe98e3b76110c6827b5744bf83f45ab0aac4 >> >> On Wed, Aug 29, 2012 at 9:19 AM, James Eliyezar <[email protected]> >> wrote: >> > I like that deal.. :-) >> > >> > On Wed, Aug 29, 2012 at 3:09 PM, Martin Grigorov <[email protected] >> >wrote: >> > >> >> I'll improve the javadoc. You improve the wiki page ;-) >> >> >> >> On Wed, Aug 29, 2012 at 9:07 AM, James Eliyezar <[email protected]> >> >> wrote: >> >> > Thanks Martin for the info. >> >> > A note in PageRequestHandlerTracker's javadoc can be very useful. >> >> > And it will be great if this is reflected in the wiki page "Request >> Cycle >> >> > in wicket 1.5< >> >> https://cwiki.apache.org/WICKET/requestcycle-in-wicket-15.html> >> >> > ". >> >> > >> >> > On Wed, Aug 29, 2012 at 3:03 PM, Martin Grigorov < >> [email protected] >> >> >wrote: >> >> > >> >> >> Hi, >> >> >> >> >> >> Yes, you have to register it. >> >> >> It is not registered by default because not everyone needs it. >> >> >> >> >> >> On Wed, Aug 29, 2012 at 9:01 AM, James Eliyezar < >> [email protected]> >> >> >> wrote: >> >> >> > Guys, >> >> >> > >> >> >> > From the javadoc of IRequestCycleListener, I found that we have to >> >> >> > explicitly register the implementations. >> >> >> > I thought PageRequestHandlerTracker would have been registered by >> >> default >> >> >> > as that's from wicket. >> >> >> > So, when I registered it manually, it worked as expected. This is >> how >> >> I >> >> >> > registered it in the wicket application's "init" method. >> >> >> > >> >> >> > @Override >> >> >> >> public void init() >> >> >> >> { >> >> >> >> super.init(); >> >> >> >> getRequestCycleListeners().add(new >> >> PageRequestHandlerTracker()); >> >> >> >> } >> >> >> >> >> >> >> > >> >> >> > On Wed, Aug 29, 2012 at 2:41 PM, James Eliyezar < >> [email protected]> >> >> >> wrote: >> >> >> > >> >> >> >> Should I register PageRequestHandlerTracker anywhere? >> >> >> >> >> >> >> >> >> >> >> >> On Wed, Aug 29, 2012 at 2:40 PM, James Eliyezar < >> [email protected] >> >> >> >wrote: >> >> >> >> >> >> >> >>> Alright Paul. >> >> >> >>> >> >> >> >>> This is my code: >> >> >> >>> >> >> >> >>> public class HomePage extends WebPage >> >> >> >>>> { >> >> >> >>>> private static Logger logger = >> >> >> >>>> LoggerFactory.getLogger(HomePage.class); >> >> >> >>>> private static final long serialVersionUID = 1L; >> >> >> >>>> >> >> >> >>>> public HomePage(final PageParameters parameters) >> >> >> >>>> { >> >> >> >>>> add(new Label("version", >> >> >> >>>> getApplication().getFrameworkSettings().getVersion())); >> >> >> >>>> try { >> >> >> >>>> IPageRequestHandler lastHandler = >> >> >> >>>> PageRequestHandlerTracker.getLastHandler(RequestCycle.get()); >> >> >> >>>> logger.debug("Last handler: {}", lastHandler); >> >> >> >>>> logger.debug("Requested page", >> lastHandler.getPage()); >> >> >> >>>> } catch (Exception ex) { >> >> >> >>>> logger.error("Error", ex); >> >> >> >>>> } >> >> >> >>>> } >> >> >> >>>> } >> >> >> >>>> >> >> >> >>>> >> >> >> >>> This is the log with exception stack trace: >> >> >> >>> >> >> >> >>> [INFO] Started Jetty Server >> >> >> >>>> DEBUG - HomePage - Last handler: null >> >> >> >>>> ERROR - DefaultExceptionMapper - Unexpected error occurred >> >> >> >>>> org.apache.wicket.WicketRuntimeException: Can't instantiate >> page >> >> using >> >> >> >>>> constructor 'public >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.quickstart.HomePage(org.apache.wicket.request.mapper.parameter.PageParameters)' >> >> >> >>>> and argument ''. Might be it doesn't exist, may be it is not >> >> visible >> >> >> >>>> (public). >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:193) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:76) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:46) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:103) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.request.handler.PageProvider.resolvePageInstance(PageProvider.java:274) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.request.handler.PageProvider.getPageInstance(PageProvider.java:165) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.request.handler.render.PageRenderer.getPage(PageRenderer.java:78) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:93) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:237) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:167) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:784) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:255) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:212) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:283) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:244) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1326) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.server.handler.ContextHandler.__doHandle(ContextHandler.java:940) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:874) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) >> >> >> >>>> at org.eclipse.jetty.server.Server.handle(Server.java:349) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:904) >> >> >> >>>> at >> >> >> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:565) >> >> >> >>>> at >> >> >> >>>> >> >> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:217) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:46) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:545) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:43) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) >> >> >> >>>> at java.lang.Thread.run(Thread.java:662) >> >> >> >>>> Caused by: java.lang.reflect.InvocationTargetException >> >> >> >>>> at >> >> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >> >> >> >>>> Method) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >> >> >> >>>> at >> >> java.lang.reflect.Constructor.newInstance(Constructor.java:513) >> >> >> >>>> at >> >> >> >>>> >> >> >> >> >> >> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:170) >> >> >> >>>> ... 41 more >> >> >> >>>> Caused by: java.lang.NullPointerException >> >> >> >>>> at >> >> org.apache.wicket.quickstart.HomePage.<init>(HomePage.java:22) >> >> >> >>>> ... 46 more >> >> >> >>>> >> >> >> >>>> >> >> >> >>> I've attached a quickstart project to recreate the problem. >> >> >> >>> >> >> >> >>> - Unzip it >> >> >> >>> - mvn clean package jetty:run >> >> >> >>> - Point your browser to http://localhost:8080 >> >> >> >>> - Watch out the console for the exception. >> >> >> >>> >> >> >> >>> >> >> >> >>> On Wed, Aug 29, 2012 at 12:53 PM, Paul Borș <[email protected]> >> wrote: >> >> >> >>> >> >> >> >>>> Might help if you provide a stack trace for the NPE :) >> >> >> >>>> >> >> >> >>>> Have a great day, >> >> >> >>>> Paul Borș >> >> >> >>>> >> >> >> >>>> On Aug 29, 2012, at 0:37, James Eliyezar <[email protected]> >> >> wrote: >> >> >> >>>> >> >> >> >>>> > Hi, >> >> >> >>>> > >> >> >> >>>> > We recently migrated our application to wicket-1.5.8. >> >> >> >>>> > >> >> >> >>>> > We have an audit aspect based on Spring AOP that shall log >> the >> >> >> actions >> >> >> >>>> > performed in the current page. >> >> >> >>>> > In wicket 1.4 we use to get that like >> >> >> >>>> > "RequestCycle.get().getResponsePage()". >> >> >> >>>> > >> >> >> >>>> > This has changed and I know that wicket 1.5 doesn't support >> this >> >> >> >>>> anymore. >> >> >> >>>> > >> >> >> >>>> > The suggested method as per the wiki is to "use a custom >> >> >> >>>> > RequestCycleListener< >> >> >> >>>> https://cwiki.apache.org/WICKET/requestcycle-in-wicket-15.html >> > >> >> >> >>>> > ". >> >> >> >>>> > >> >> >> >>>> > Fortunately, as highlighted in the mailing list, there is a >> new >> >> >> class >> >> >> >>>> in >> >> >> >>>> > wicket 1.5.8 named >> >> >> >>>> > PageRequestHandlerTracker< >> >> >> >>>> >> >> >> >> >> >> http://apache-wicket.1842946.n4.nabble.com/Interpolate-response-with-IResponseFilter-td4651476.html >> >> >> >>>> >to >> >> >> >>>> > meet this common requirement. >> >> >> >>>> > >> >> >> >>>> > However, when we use >> >> >> >>>> > PageRequestHandlerTracker.getLastHandler(RequestCycle.get()), >> >> >> >>>> > and then attempt to call #getPage(), a null pointer >> exception is >> >> >> >>>> thrown. >> >> >> >>>> > >> >> >> >>>> > Am I doing something wrong here? Please give your >> suggestions. >> >> >> >>>> > >> >> >> >>>> > -- >> >> >> >>>> > Thanks & regards >> >> >> >>>> > James Selvakumar >> >> >> >>>> > mcruncher.com >> >> >> >>>> >> >> >> >>>> >> >> --------------------------------------------------------------------- >> >> >> >>>> To unsubscribe, e-mail: [email protected] >> >> >> >>>> For additional commands, e-mail: [email protected] >> >> >> >>>> >> >> >> >>>> >> >> >> >>> >> >> >> >>> >> >> >> >>> -- >> >> >> >>> Thanks & regards >> >> >> >>> James Selvakumar >> >> >> >>> mcruncher.com >> >> >> >>> >> >> >> >>> >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> >> Thanks & regards >> >> >> >> James Selvakumar >> >> >> >> mcruncher.com >> >> >> >> >> >> >> >> >> >> >> > >> >> >> > >> >> >> > -- >> >> >> > Thanks & regards >> >> >> > James Selvakumar >> >> >> > mcruncher.com >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> Martin Grigorov >> >> >> jWeekend >> >> >> Training, Consulting, Development >> >> >> http://jWeekend.com >> >> >> >> >> >> >> --------------------------------------------------------------------- >> >> >> To unsubscribe, e-mail: [email protected] >> >> >> For additional commands, e-mail: [email protected] >> >> >> >> >> >> >> >> > >> >> > >> >> > -- >> >> > Thanks & regards >> >> > James Selvakumar >> >> > mcruncher.com >> >> >> >> >> >> >> >> -- >> >> Martin Grigorov >> >> jWeekend >> >> Training, Consulting, Development >> >> http://jWeekend.com >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: [email protected] >> >> For additional commands, e-mail: [email protected] >> >> >> >> >> > >> > >> > -- >> > Thanks & regards >> > James Selvakumar >> > mcruncher.com >> >> >> >> -- >> Martin Grigorov >> jWeekend >> Training, Consulting, Development >> http://jWeekend.com >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > > -- > Thanks & regards > James Selvakumar > mcruncher.com > > -- Thanks & regards James Selvakumar mcruncher.com
