4
기본 인증 시스템을 구현할 수 있도록 Wicket의 WebSession을 서브 클래스하려고했습니다. 필자는 Wicket 참조 라이브러리의 지침을 따랐습니다. 내가 시간 동안 웹을 검색했습니다WebSession ClassCastException
java.lang.ClassCastException: org.apache.wicket.protocol.http.WebSession cannot be cast to com.example.webapp.AppSession
와 내가 할 수있는 모든 노력을 : 여기
((AppSession)Session.get()).setUid()
전체 오류입니다 : 내 웹 페이지에서 다음을 시도 할 때, 나는 ClassCastException를 얻을. 나는 정말로 약간의 도움에 감사 할 것이다. 또한이 작업을 수행하는 더 좋은 방법이 있는지 알려주십시오. 나는 개찰구를 처음 사용합니다.
감사합니다.
내가 너무 내 자신의 세션 클래스가 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
@monksy 아니요. 'AppSession.get()'은 웹 요청이 처리되는 사용자 세션을 반환하기 때문입니다. –
한 줄짜리 전화가 틀리지 않지만 정답입니다. 나는 항상 그것을 사용합니다 :) MySession.get(). getUsername() 등. – RobAu