我一直在尝试对 Wicket 的 WebSession 进行子类化,以便实现基本的身份验证系统。我已遵循 Wicket 参考库中的指南。当我在我的网页中尝试以下操作时,我得到一个 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();
}
}
应用程序.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;
}
}