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
>
>

Reply via email to