Yep, that's exactly what I do. Every field with a pax-wicket annotation is
replaced at serialisation time with the information required to retrieve
the service again; once you deserialize the class again the injection is
redone; it's very similar to what wicket itself does for @SpringBeans; only
a "little" bit more complex thanks to the osgi context ;-)

Kind regards,
Andreas


On Wed, Nov 14, 2012 at 4:33 AM, Hendy Irawan <[email protected]> wrote:

> Thank you Andreas.
>
> I thought omitting transient means they will be serialized (and cause
> serialization problems), so @PaxWicketBean replaces the serialization
> mechanism with injection?
>
> Thank you again :)
>
> Hendy
>
>
> On Wed, Nov 14, 2012 at 4:15 AM, Andreas Pieber <[email protected]>wrote:
>
>> Hey,
>>
>> The problem is transient. @PaxWicketBeans are never serialized, but
>> always retrieved a new. Please try to remove transient; this should do the
>> trick.
>>
>> Kind regards,
>> Andreas
>>
>>
>> On Tue, Nov 13, 2012 at 2:42 PM, Hendy Irawan <[email protected]> wrote:
>>
>>> Hi all,
>>>
>>> My code is :
>>>
>>> @PaxWicketBean(name="bannersSupplier")
>>> private transient Supplier<BannerCollection> bannersSupplier;
>>>
>>> On first request it's OK, but on "second" request (i.e. going to another
>>> page and going back so now it has ?0 on the URI), it seems that the field
>>> is now null.
>>>
>>> bannersSupplier come from the Blueprint instance.
>>>
>>> This issue is always reproducible. Am I using @PaxWicketBean wrong?
>>>
>>> Thank you.
>>>
>>> java.lang.NullPointerException: bannersSupplier cannot be null
>>>      at 
>>> com.google.common.base.Preconditions.checkNotNull(Preconditions.java:208)
>>>      at id.co.bippo.web.pub.HomePage$BannerListModel.load(HomePage.java:59)
>>>
>>>
>>>
>>>      at id.co.bippo.web.pub.HomePage$BannerListModel.load(HomePage.java:1)
>>>      at 
>>> org.apache.wicket.model.LoadableDetachableModel.getObject(LoadableDetachableModel.java:119)
>>>      at 
>>> org.apache.wicket.Component.getDefaultModelObject(Component.java:1674)
>>>
>>>
>>>
>>>      at 
>>> org.apache.wicket.markup.html.list.ListView.getViewSize(ListView.java:219)
>>>      at 
>>> org.apache.wicket.markup.html.list.ListView.onPopulate(ListView.java:473)
>>>      at 
>>> org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:119)
>>>
>>>
>>>
>>>      at org.apache.wicket.Component.internalBeforeRender(Component.java:994)
>>>      at org.apache.wicket.Component.beforeRender(Component.java:1028)
>>>      at 
>>> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1743)
>>>
>>>
>>>
>>>      at org.apache.wicket.Component.onBeforeRender(Component.java:3859)
>>>      at org.apache.wicket.Component.internalBeforeRender(Component.java:994)
>>>      at org.apache.wicket.Component.beforeRender(Component.java:1028)
>>>
>>>
>>>
>>>      at 
>>> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1743)
>>>      at org.apache.wicket.Component.onBeforeRender(Component.java:3859)
>>>      at org.apache.wicket.Page.onBeforeRender(Page.java:826)
>>>
>>>
>>>
>>>      at 
>>> org.soluvas.web.site.MultitenantPage.onBeforeRender(MultitenantPage.java:56)
>>>      at org.apache.wicket.Component.internalBeforeRender(Component.java:994)
>>>      at org.apache.wicket.Component.beforeRender(Component.java:1028)
>>>
>>>
>>>
>>>      at 
>>> org.apache.wicket.Component.internalPrepareForRender(Component.java:2229)
>>>      at org.apache.wicket.Page.internalPrepareForRender(Page.java:279)
>>>      at org.apache.wicket.Component.render(Component.java:2313)
>>>
>>>
>>>
>>>      at org.apache.wicket.Page.renderPage(Page.java:1035)
>>>      at 
>>> org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:115)
>>>      at 
>>> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:195)
>>>
>>>
>>>
>>>      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.WicketServlet.doGet(WicketServlet.java:137)
>>>      at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
>>>
>>>
>>>
>>>      at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>>>      at 
>>> org.ops4j.pax.wicket.internal.FilterDelegator$Chain.doFilter(FilterDelegator.java:79)
>>>      at 
>>> org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
>>>
>>>
>>>
>>>      at 
>>> org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
>>>      at 
>>> org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
>>>      at 
>>> org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
>>>
>>>
>>>
>>>      at 
>>> org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
>>>      at 
>>> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
>>>      at 
>>> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>>>
>>>
>>>
>>>      at 
>>> org.ops4j.pax.wicket.internal.FilterDelegator$Chain.doFilter(FilterDelegator.java:77)
>>>      at 
>>> org.ops4j.pax.wicket.internal.FilterDelegator.doFilter(FilterDelegator.java:61)
>>>      at 
>>> org.ops4j.pax.wicket.internal.ServletProxy$ServletInvocationHandler.invoke(ServletProxy.java:72)
>>>
>>>
>>>
>>>      at $Proxy16.service(Unknown Source)
>>>      at java.lang.reflect.Method.invoke(Method.java:601)
>>>      at 
>>> org.ops4j.pax.web.service.internal.HttpServiceStarted$2.invoke(HttpServiceStarted.java:210)
>>>      at org.ops4j.pax.web.service.internal.$Proxy0.service(Unknown Source)
>>>
>>>
>>>
>>>      at 
>>> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
>>>      at 
>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:447)
>>>      at 
>>> org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)
>>>
>>>
>>>
>>>      at 
>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
>>>      at 
>>> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559)
>>>      at 
>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
>>>
>>>
>>>
>>>      at 
>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1038)
>>>      at 
>>> org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:117)
>>>      at 
>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:374)
>>>
>>>
>>>
>>>      at 
>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
>>>      at 
>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:972)
>>>      at 
>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
>>>
>>>
>>>
>>>      at 
>>> org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:74)
>>>      at 
>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
>>>      at org.eclipse.jetty.server.Server.handle(Server.java:363)
>>>
>>>
>>>
>>>      at 
>>> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:483)
>>>      at 
>>> org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
>>>      at 
>>> org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:920)
>>>
>>>
>>>
>>>      at 
>>> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:982)
>>>      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
>>>      at 
>>> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
>>>
>>>
>>>
>>>      at 
>>> org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
>>>      at 
>>> org.eclipse.jetty.server.nio.BlockingChannelConnector$BlockingChannelEndPoint.run(BlockingChannelConnector.java:298)
>>>
>>>
>>>
>>>      at 
>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
>>>      at 
>>> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
>>>      at java.lang.Thread.run(Thread.java:722)
>>>
>>>
>>> Complete stack:
>>>
>>> org.apache.wicket.WicketRuntimeException: Error attaching this container 
>>> for rendering: [BannerCarousel [Component id = afterHeader]]
>>>      at 
>>> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1755)
>>>
>>>
>>>
>>>      at org.apache.wicket.Component.onBeforeRender(Component.java:3859)
>>>      at org.apache.wicket.Component.internalBeforeRender(Component.java:994)
>>>      at org.apache.wicket.Component.beforeRender(Component.java:1028)
>>>
>>>
>>>
>>>      at 
>>> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1743)
>>>      at org.apache.wicket.Component.onBeforeRender(Component.java:3859)
>>>      at org.apache.wicket.Page.onBeforeRender(Page.java:826)
>>>
>>>
>>>
>>>      at 
>>> org.soluvas.web.site.MultitenantPage.onBeforeRender(MultitenantPage.java:56)
>>>      at org.apache.wicket.Component.internalBeforeRender(Component.java:994)
>>>      at org.apache.wicket.Component.beforeRender(Component.java:1028)
>>>
>>>
>>>
>>>      at 
>>> org.apache.wicket.Component.internalPrepareForRender(Component.java:2229)
>>>      at org.apache.wicket.Page.internalPrepareForRender(Page.java:279)
>>>      at org.apache.wicket.Component.render(Component.java:2313)
>>>
>>>
>>>
>>>      at org.apache.wicket.Page.renderPage(Page.java:1035)
>>>      at 
>>> org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:115)
>>>      at 
>>> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:195)
>>>
>>>
>>>
>>>      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)
>>>
>>> java.lang.RuntimeException: An error occurred while getting the model 
>>> object for Component: [ [Component id = banner, page = 
>>> id.co.bippo.web.pub.HomePage, path = 0:afterHeader:banner.BannerCarousel$1, 
>>> isVisible = true, isVersioned = true], children = [ListItem [Component id = 
>>> 0]] [ListItem [Component id = 1]] [ListItem [Component id = 2]]]
>>>
>>>
>>>
>>>      at 
>>> org.apache.wicket.Component.getDefaultModelObject(Component.java:1679)
>>>      at 
>>> org.apache.wicket.markup.html.list.ListView.getViewSize(ListView.java:219)
>>>      at 
>>> org.apache.wicket.markup.html.list.ListView.onPopulate(ListView.java:473)
>>>
>>>
>>>
>>>      at 
>>> org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:119)
>>>      at org.apache.wicket.Component.internalBeforeRender(Component.java:994)
>>>      at org.apache.wicket.Component.beforeRender(Component.java:1028)
>>>
>>>
>>>
>>>      at 
>>> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1743)
>>>      at org.apache.wicket.Component.onBeforeRender(Component.java:3859)
>>>      at org.apache.wicket.Component.internalBeforeRender(Component.java:994)
>>>
>>>
>>>
>>>      at org.apache.wicket.Component.beforeRender(Component.java:1028)
>>>      at 
>>> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1743)
>>>      at org.apache.wicket.Component.onBeforeRender(Component.java:3859)
>>>
>>>
>>>
>>>      at org.apache.wicket.Page.onBeforeRender(Page.java:826)
>>>      at 
>>> org.soluvas.web.site.MultitenantPage.onBeforeRender(MultitenantPage.java:56)
>>>      at org.apache.wicket.Component.internalBeforeRender(Component.java:994)
>>>
>>>
>>>
>>>      at org.apache.wicket.Component.beforeRender(Component.java:1028)
>>>      at 
>>> org.apache.wicket.Component.internalPrepareForRender(Component.java:2229)
>>>      at org.apache.wicket.Page.internalPrepareForRender(Page.java:279)
>>>
>>>
>>>
>>>      at org.apache.wicket.Component.render(Component.java:2313)
>>>      at org.apache.wicket.Page.renderPage(Page.java:1035)
>>>      at 
>>> org.apache.wicket.request.handler.render.WebPageRenderer.renderPage(WebPageRenderer.java:115)
>>>
>>>
>>>
>>>      at 
>>> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:195)
>>>      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)
>>>
>>>
>>> --
>>> Hendy Irawan - on Twitter <http://twitter.com/hendybippo> - on 
>>> LinkedIn<http://id.linkedin.com/in/hendyirawan>
>>> Web Developer | Bippo Indonesia <http://www.bippo.co.id/> | Akselerator
>>> Bisnis | Bandung
>>>
>>>
>>> _______________________________________________
>>> general mailing list
>>> [email protected]
>>> http://lists.ops4j.org/mailman/listinfo/general
>>>
>>>
>>
>> _______________________________________________
>> general mailing list
>> [email protected]
>> http://lists.ops4j.org/mailman/listinfo/general
>>
>>
>
>
> --
> Hendy Irawan - on Twitter <http://twitter.com/hendybippo> - on 
> LinkedIn<http://id.linkedin.com/in/hendyirawan>
> Web Developer | Bippo Indonesia <http://www.bippo.co.id/> | Akselerator
> Bisnis | Bandung
>
>
> _______________________________________________
> general mailing list
> [email protected]
> http://lists.ops4j.org/mailman/listinfo/general
>
>
_______________________________________________
general mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/general

Reply via email to