Vaadin 7:过滤器,每个请求的EntityManager(休眠),JPAContainer和push / websockets用法

时间:2014-07-22 13:26:02

标签: java hibernate java-ee vaadin vaadin-push

我正在使用Wildfly 8.1和Vaadin 7.3.beta1。

我在@WebFilter中启动一个EntityManager并管理该层的事务,即为使用JPAContainer插件而建议的每个请求的实体管理器模式。

在Vaadin 7之前,我很清楚,对于浏览器中每个在服务器中都有一个监听器的事件,都会产生一个简单的HTTP请求,它将通过我的过滤器,从而在执行vaadin代码之前启动一个事务,并在执行vaadin代码后正确完成该实体管理器事务。

但我现在关注的是,Vaadin 7支持推送,并且可能会使用websocket,我的过滤器可能无法执行。 在UI中使用@Push时,无论使用何种传输,我的过滤器都会运行吗?

这如何在Vaadin 7中发挥作用?

1 个答案:

答案 0 :(得分:1)

根据这个答案https://stackoverflow.com/a/24919928/39998我们不应该在Vaadin 7 UI中使用@Push时依赖javax.servlet.Filter,因为它可能使用websockets作为底层传输,不会将过滤器执行到启动EntityManager事务。