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
