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 によって拡張される) は、私の WicketApplication ではなく Application::newSession を使用するのですか?

セッションの呼び出しは、埋め込みパネルから来ています。これは、セッションの初期化の問題と関係がありますか?

4

1 に答える 1

1

DefaultPageFactory#createPage() は Wicket 1.4.x のものです。クラスパスを確認する必要があります。

于 2013-09-26T07:08:32.203 に答える