@PreDestroy 从未调用过@ViewScoped [重复]

问题描述 投票:0回答:1

我有一个

@ViewScoped
bean,它有一个带有
@PreDestroy
注释的方法,应该确保关闭一些远程连接。但是,当用户离开时,不会调用该方法。

有什么可能做错的事吗?我是否必须在任何地方注册任何东西才能使其正常工作?

这是一个简单的公共方法(

void
),不会抛出异常。

我正在使用 JSF 2 (MyFaces) 和 Tomcat 7.0.12。难道是Tomcat的问题?

更新

@PostConstruct
注释工作正常。

jsf jsf-2 annotations javabeans
1个回答
14
投票

这是一个已知问题,不幸的是,如果不让所有导航都通过相关视图作用域 bean 进行,那么解决起来并不简单。另请参阅JSF-impl 问题 1839。这仅不包括最终用户更改浏览器地址栏中的 URL 或关闭窗口/选项卡的情况。当会话被销毁时,它们的

@PreDestroy
也不会被调用。然而,已经发布了对该规范的增强请求,以便无论如何都能在会话销毁期间销毁悬空视图:JSF 规范问题 905

© www.soinside.com 2019 - 2024. All rights reserved.