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 <ja...@mcruncher.com> wrote: > Should I register PageRequestHandlerTracker anywhere? > > > On Wed, Aug 29, 2012 at 2:40 PM, James Eliyezar <ja...@mcruncher.com>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ș <p...@bors.ws> 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 <ja...@mcruncher.com> 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: users-unsubscr...@wicket.apache.org >>> For additional commands, e-mail: users-h...@wicket.apache.org >>> >>> >> >> >> -- >> Thanks & regards >> James Selvakumar >> mcruncher.com >> >> > > > -- > Thanks & regards > James Selvakumar > mcruncher.com > > -- Thanks & regards James Selvakumar mcruncher.com