我正在使用Wildfly 8.1和Vaadin 7.3.beta1。
我在@WebFilter中启动一个EntityManager并管理该层的事务,即为使用JPAContainer插件而建议的每个请求的实体管理器模式。
在Vaadin 7之前,我很清楚,对于浏览器中每个在服务器中都有一个监听器的事件,都会产生一个简单的HTTP请求,它将通过我的过滤器,从而在执行vaadin代码之前启动一个事务,并在执行vaadin代码后正确完成该实体管理器事务。
但我现在关注的是,Vaadin 7支持推送,并且可能会使用websocket,我的过滤器可能无法执行。 在UI中使用@Push时,无论使用何种传输,我的过滤器都会运行吗?
这如何在Vaadin 7中发挥作用?
答案 0 :(得分:1)
根据这个答案https://stackoverflow.com/a/24919928/39998我们不应该在Vaadin 7 UI中使用@Push时依赖javax.servlet.Filter,因为它可能使用websockets作为底层传输,不会将过滤器执行到启动EntityManager事务。