这个问题在这里已经有了答案:
JSF 2.1 ViewScopedBean @PreDestroy method is not called
(2 个回答)
2年前关闭。
我有一个 @ViewScoped
具有 @PreDestroy
方法的 bean应确保关闭某些远程连接的注释。但是,当用户离开时不会调用该方法。
有什么可以做错的吗?我必须在任何地方注册任何东西才能使其工作吗?
这是一个简单的公共(public)方法( void
),不会引发异常。
我将 JSF 2 (MyFaces) 与 Tomcat 7.0.12 一起使用。会不会是Tomcat的问题?
更新 @PostConstruct
注释工作正常。
最佳答案
这是一个已知问题,不幸的是,如果不让所有导航都通过有问题的 View 范围 bean 进行,解决起来并不容易。另见 JSF-impl issue 1839 .这仅不包括最终用户更改浏览器地址栏中的 URL 或关闭窗口/选项卡的情况。他们的@PreDestroy
当 session 被销毁时也不会被调用。然而,已经发布了对规范的增强请求,以在 session 销毁期间销毁悬空 View :JSF-spec issue 905 .
关于jsf - @PreDestroy 从未调用过@ViewScoped,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6368840/