gpt4 book ai didi

session - Tomcat JSF session BEan @Predestroy "Session already invalidated"

转载 作者:行者123 更新时间:2023-11-28 22:06:14 25 4
gpt4 key购买 nike

所以我尝试访问我的 HttpSession 的一个属性在我的 @PreDestroy 方法上,在 @SessionScoped JSF 托管 bean 上使用

session.getAttribute("myAttribute"); 

但是我得到了一个

java.lang.IllegalStateException: getAttribute: Session has already been invalidated

为什么?

在我的 session bean 之一被销毁之前,我需要访问该 session 打开的外部服务的连接列表,它们当然存储在 session 属性对象中。

我该怎么做?

最佳答案

在 session 范围内的托管 bean 中显式访问 session 属性没有意义。只需将该属性设为 session 范围内托管 bean 本身的属性即可。

@SessionScoped
public class YourSessionScopedBean implements Serializable {

private Object yourAttribute; // It becomes a session attribute already.

@PreDestroy
public void destroy() {
// Just access yourAttribute directly, no need to do it the hard way.
}

}

您遇到的异常发生是因为 session 通过 HttpSession#invalidate() 显式无效调用而不是“刚刚”过期。

关于session - Tomcat JSF session BEan @Predestroy "Session already invalidated",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35488816/

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