I'll improve the javadoc. You improve the wiki page ;-)

On Wed, Aug 29, 2012 at 9:07 AM, James Eliyezar <ja...@mcruncher.com> 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 <mgrigo...@apache.org>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 <ja...@mcruncher.com>
>> 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 <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
>>
>>
>>
>> --
>> Martin Grigorov
>> jWeekend
>> Training, Consulting, Development
>> http://jWeekend.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



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to