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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to