1

我正在使用 Apache Wicket 6.10,并且遇到了 Apache Wicket 的投射异常问题。

我的自定义会话对象扩展了 WebSession 类,并且我在 WicketApplication (Extends WebApplication)::newSession 中返回了一个新的 SCSSession 实例。

例外是:

org.apache.wicket.protocol.http.WebSession cannot be cast to SCSSession
at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:212)
    at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:57)
    at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:298)
    at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
    at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
    at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
    at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279)
    at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358)

我在调试中发现新会话是从 org.apache.wicket.Application 类创建的。

目前,我有点傻,为什么 WicketApplication(由 WebAplication 扩展也由 Application 扩展)使用 Application::newSession 而不是我的 WicketApplication?

会话的调用来自嵌入式面板。这与会话初始化中的问题有关吗?

4

1 回答 1

1

DefaultPageFactory#createPage() 来自 Wicket 1.4.x。你应该检查你的类路径。

于 2013-09-26T07:08:32.203 回答