in CheesrApplication class you need to override newSession() method and return new CheesrSession()
On Fri, Feb 18, 2011 at 3:56 PM, xaver <saverio.scave...@googlemail.com>wrote: > > Hi, > > I'm really new to wicket and I'm trying to learn about with wicket in > action. > Now the problem: I've initialized a project trought maven quikstart > version: > 1.5rc1. > > A first test with the jetty engine work as aspected. > > the session is implemented with the following class: > > public class CheesrSession extends WebSession { > > private Cart cart = new Cart(); > > public CheesrSession(Request request) { > super(request); > } > > public Cart getCart(){ > > return cart; > } > > > } > > > and with the getHomePage method in the extended WebApplication: > > public Class getHomePage() { > return Index.class; > } > > > I call the index page: > > import org.apache.wicket.markup.html.basic.Label; > import org.apache.wicket.markup.html.link.Link; > import org.apache.wicket.markup.html.list.ListItem; > import org.apache.wicket.markup.html.list.ListView; > import org.apache.wicket.model.PropertyModel; > > /** > * > * @author saverioscavelli > */ > public class Index extends CheesrPage { > > //private static final long serialVersionUID = 1L; > > > public Index() { > > add(new ListView("cheeses", getCheeses()) { > > @Override > protected void populateItem(ListItem item) { > //throw new UnsupportedOperationException("Not supported > yet."); > Cheese cheese = (Cheese) item.getModelObject(); > item.add(new Label("name", cheese.getName())); > item.add(new Label("description", cheese.getDesciption())); > item.add(new Label("price", "$" + cheese.getPrice())); > item.add(new Link("add", item.getModel()) { > > @Override > public void onClick() { > //throw new UnsupportedOperationException("Not > supported yet."); > Cheese selected = (Cheese) getModelObject(); > getCart().getCheeses().add(selected); > } > }); > } > }); > > > add(new ListView("cart", new PropertyModel(this, "cart.cheeses")) { > > @Override > protected void populateItem(ListItem item) { > //throw new UnsupportedOperationException("Not supported > yet."); > Cheese cheese = (Cheese) item.getModelObject(); > item.add(new Label("name", cheese.getName())); > item.add(new Label("price", "$"+ cheese.getPrice())); > > item.add(new Link("remove", item.getModel()) { > > @Override > public void onClick() { > //throw new UnsupportedOperationException("Not > supported yet."); > > Cheese selected = (Cheese) getModelObject(); > getCart().getCheeses().remove(selected); > } > }); > > } > }); > add(new Label("total", "$"+ getCart().getTotal())); > > > } > > > > } > > the index page extends the CheesrPage: > > import java.util.List; > import org.apache.wicket.markup.html.WebPage; > > /** > * > * @author saverioscavelli > */ > public abstract class CheesrPage extends WebPage { > > public CheesrSession getCheesrSession(){ > > return (CheesrSession) getSession(); > } > > public Cart getCart(){ > return getCheesrSession().getCart(); > } > > public List<Cheese> getCheeses(){ > return WicketApplication.get().getCheeses(); > } > > } > > unfortunately I recive an Error that I dont really anderstand: > > Unexpected RuntimeException > > WicketMessage: Can't instantiate page using constructor public > babilo.cheeser.cheesr.Index() > > Stacktrace > > Root cause: > > java.lang.ClassCastException: org.apache.wicket.protocol.http.WebSession > cannot be cast to babilo.cheeser.cheesr.CheesrSession > at > babilo.cheeser.cheesr.CheesrPage.getCheesrSession(CheesrPage.java:31) > at babilo.cheeser.cheesr.CheesrPage.getCart(CheesrPage.java:35) > at babilo.cheeser.cheesr.Index.<init>(Index.java:81) > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at > > org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:155) > at > > org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:59) > at > > org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:43) > at > org.apache.wicket.Application$2.newPageInstance(Application.java:1157) > at > > org.apache.wicket.request.handler.PageProvider.getPageInstance(PageProvider.java:259) > at > > org.apache.wicket.request.handler.PageProvider.getPageInstance(PageProvider.java:160) > at > > org.apache.wicket.request.handler.render.WebPageRenderer.getPage(WebPageRenderer.java:59) > at > > org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:212) > at > > org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:149) > at > > org.apache.wicket.request.RequestHandlerStack.executeRequestHandler(RequestHandlerStack.java:84) > at > > org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:206) > at > > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:248) > at > > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:131) > at > > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:184) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) > at > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) > at java.lang.Thread.run(Thread.java:680) > > Complete stack: > > org.apache.wicket.WicketRuntimeException: Can't instantiate page using > constructor public babilo.cheeser.cheesr.Index() > at > > org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:173) > at > > org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:59) > at > > org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:43) > at > org.apache.wicket.Application$2.newPageInstance(Application.java:1157) > at > > org.apache.wicket.request.handler.PageProvider.getPageInstance(PageProvider.java:259) > at > > org.apache.wicket.request.handler.PageProvider.getPageInstance(PageProvider.java:160) > at > > org.apache.wicket.request.handler.render.WebPageRenderer.getPage(WebPageRenderer.java:59) > at > > org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:212) > at > > org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:149) > at > > org.apache.wicket.request.RequestHandlerStack.executeRequestHandler(RequestHandlerStack.java:84) > at > > org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:206) > at > > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:248) > at > > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:131) > > java.lang.reflect.InvocationTargetException > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at > > org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:155) > at > > org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:59) > at > > org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:43) > at > org.apache.wicket.Application$2.newPageInstance(Application.java:1157) > at > > org.apache.wicket.request.handler.PageProvider.getPageInstance(PageProvider.java:259) > at > > org.apache.wicket.request.handler.PageProvider.getPageInstance(PageProvider.java:160) > at > > org.apache.wicket.request.handler.render.WebPageRenderer.getPage(WebPageRenderer.java:59) > at > > org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:212) > at > > org.apache.wicket.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:149) > at > > org.apache.wicket.request.RequestHandlerStack.executeRequestHandler(RequestHandlerStack.java:84) > at > > org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:206) > at > > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:248) > at > > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:131) > > Please Help > -- > View this message in context: > http://apache-wicket.1842946.n4.nabble.com/wicket-in-action-session-Problems-tp3312697p3312697.html > Sent from the Users forum mailing list archive at Nabble.com. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > >