4
我一直試圖將Wicket的WebSession子類化,所以我可以實現一個基本的身份驗證系統。我遵循Wicket參考庫中的指導原則。當我嘗試在我的網頁下面,我得到一個ClassCastException:WebSession 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;
}
}
這對於多個用戶和AppSession的使用壽命來說不是問題嗎? – monksy 2013-09-24 21:50:25
@monksy不,因爲'AppSession.get()'返回正在處理Web請求的用戶的會話。 – 2013-10-01 10:04:33
這是正確的答案,儘管單線電話沒有錯。我一直使用它:) MySession.get()。getUsername()等 – RobAu 2013-10-16 06:59:37