@PreDestroy从未调用@ViewScoped



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

有什么可以做错的吗?我必须在任何地方注册才能使其工作吗?

这是一个简单的公共方法(void),不会抛出异常。

我将JSF 2(MyFaces)与Tomcat 7.0.12一起使用。这可能是Tomcat的问题吗?

更新

@PostConstruct注释工作正常。

这是一个已知的问题,不幸的是,如果不让所有导航都通过有问题的视图范围的bean来进行,那么解决这个问题并不容易。另请参阅JSF impl问题1839。这仅不包括最终用户更改浏览器地址栏中的URL或关闭窗口/选项卡的情况。当会话被破坏时,它们的@PreDestroy也不会被调用。然而,已经发布了对规范的增强请求,以便在会话销毁期间销毁悬挂视图:JSF规范问题905。

相关内容

  • 没有找到相关文章

最新更新