我正在使用 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?
会话的调用来自嵌入式面板。这与会话初始化中的问题有关吗?