gpt4 book ai didi

java - 序列化 FacesContext 或如何在服务器重新启动后获取属性值

转载 作者:行者123 更新时间:2023-12-01 15:11:41 26 4
gpt4 key购买 nike

问题如下:我需要序列化用户 session ,因此,在服务器重新启动后它仍然存在。

使用 JavaEE 和 Tomcat 7 与 implements Serialized 配合使用效果很好,但问题在于 FacesContext。事实上,重新启动服务器后,FacesContext.getCurrentInstance() 返回 null,因此我无法访问消息包(因此我的 message.properties > 无法再找到)。

那么,如何在重新启动 Tomcat 时保留 FacesContext

最佳答案

您的问题描述不清楚,但症状表明您正在尝试在任何地方获取 FacesContext 的当前实例作为实例变量。您根本不应该这样做,您应该始终在本地方法范围内获取当前实例。

所以,你不应该永远这样做,例如

private FacesContext context;

public Bean() {
context = FacesContext.getCurrentInstance();
}

public void someMethod() {
context...doSomething();
}

但你应该这样做:

public void someMethod() {
FacesContext.getCurrentInstance()...doSomething();
}

否则,您将遇到 session 范围 bean 仅保存创建该 bean 的第一个 HTTP 请求的实例。正是这个 HTTP 请求在相关响应结束时被垃圾化,并且在任何后续请求中不再有效。因此,FacesContext 绝对不应该是可序列化的。

关于java - 序列化 FacesContext 或如何在服务器重新启动后获取属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12265102/

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