基本認証システムを実装できるように、Wicket の WebSession をサブクラス化しようとしています。私は Wicket リファレンス ライブラリのガイドラインに従いました。WebPage で次のことを試みると、ClassCastException が発生します。
((AppSession)Session.get()).setUid()
完全なエラーは次のとおりです。
java.lang.ClassCastException: org.apache.wicket.protocol.http.WebSession cannot be cast to com.example.webapp.AppSession
私は何時間もウェブを検索し、できる限りのことを試しました。助けていただければ幸いです。また、これを行うためのより良い方法があれば教えてください。私はウィケットに本当に慣れていません。
ありがとうございました。
AppSession.java
public final class AppSession extends WebSession {
private Integer uid;
public AppSession(Request request) {
super(request);
}
public final Integer getUid() {
return uid;
}
public final void setUid(Integer uid) {
this.uid = uid;
}
public static AppSession get() {
return (AppSession)Session.get();
}
}
App.java
public class App extends WebApplication {
public App() {
super();
new AnnotatedMountScanner().scanPackage("com.example.webapp").mount(this);
}
@Override
public Session newSession(Request request, Response response) {
return new AppSession(request);
}
@Override
public Class getHomePage() {
return null;
}
}