gpt4 book ai didi

session - WebSession ClassCastException

转载 作者:行者123 更新时间:2023-12-02 13:43:41 31 4
gpt4 key购买 nike

我一直在尝试对 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

我已经在网上搜索了几个小时并尝试了一切我能做的。我真的很感激一些帮助。另外,请告诉我是否有更好的方法来做到这一点。我对 Wicket 门还很陌生。

谢谢。

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;
}
}

最佳答案

我也有自己的 session 类,它是 WebSession 的后代。我做的一些事情与你不同。

添加AppSession方法:

/**
* Gets the session for the calling thread.
* @return
* The session for the calling thread.
*/
public static AppSession get()
{
return (AppSession)Session.get();
}

你可能想尝试

AppSession ssnSession = AppSession.get();
ssnSession.setUid(...);

而不是您的单线调用。

您检查过 (App)Session 类的包吗?

(我个人不会为您的 App.getHomePage() 返回 null。)

这些有帮助吗?

关于session - WebSession ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11518273/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com