jsf - @PreDestroy 从未调用过@ViewScoped

标签 jsf jsf-2 annotations javabeans

这个问题在这里已经有了答案:





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/

相关文章:

带有 Primefaces 和 dataTable 的 javax.el.PropertyNotFoundException

java - 基于带有参数的函数的 SEAM 导航

java - hibernate + jsf + spring 的缓存提供程序

jsf - selectOneMenu 中的 java 警报错误

jsf - 升级到 JSF 2.3 后,@Inject 在 @FacesConverter 中不起作用

java - 注解可以用于代码注入(inject)吗?

java - 消息: Missing PDF in PrimeFaces Extensions DocumentViewer

在 Tomcat 7 上首次测试时从 Servlet 空白调用的 JSF 页面

java - 使用动态代理时,如何访问底层对象的注释?

python - 使用非类型对象注释参数