【问题标题】:Vaadin 7: Filters, EntityManager per Request(hibernate), JPAContainer and push/websockets usageVaadin 7:过滤器、EntityManager per Request(hibernate)、JPAContainer 和 push/websockets 使用
【发布时间】:2014-07-22 13:26:01
【问题描述】:

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

我在 @WebFilter 中启动一个 EntityManager 并在该层管理事务,即遵循推荐用于 JPAContainer 插件的 entitymanager-per-request 模式。

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

但我现在担心 Vaadin 7 支持推送并且可能在我的过滤器可能不会始终执行的引擎盖下使用 websocket。 在 UI 中使用 @Push 时,无论使用何种传输方式,我的过滤器都会运行吗?

这在 Vaadin 7 中是如何工作的?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 那么实现“按请求”行为的替代方法是什么?
    • 遗憾的是我还不知道
    • 我目前面临同样的问题,非常可悲的是,Vaadin 没有提到这个问题的替代解决方案,同时仍在使用 ServletFilter 进行传播 - 请参阅 vaadin.com/book/-/page/jpacontainer.hibernate.html
    • 同样的问题...没有解决办法。我不会使用推送
    • 可以使用push,但是方法不应该是websockets。
    猜你喜欢
    • 1970-01-01
    • 2014-09-15
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    相关资源
    最近更新 更多