问题标签 [vaadin-push]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何在 vaadin 中动态推送更新页面?
我有一个使用Vaadin
and的工作应用程序Spring (+Security)
。我现在正在尝试使用vaadin-push
.
我想为所有客户创建一个相同的“视图”。视图应该得到一个通过推送动态递增的计数器。因此,当客户端显示页面时,计数器会自行更新(或者在我的示例中:将多个标签组件附加到页面)。每个客户都应该看到相同的值。
但我没有看到推送到网页的更改。为什么?
只有手动刷新网页,才能在客户端看到更改。但内容本身不会自动改变。
也许@Push
必须放在UI
课堂上?但在这种情况下,我会收到以下错误:
java.lang.IllegalStateException:无法将响应挂起超过会话超时。在 com.vaadin 的 org.atmosphere.cpr.AtmosphereResourceImpl.suspend(AtmosphereResourceImpl.java:292) 的 org.atmosphere.cpr.AtmosphereResourceImpl.suspend(AtmosphereResourceImpl.java:314) 的 web.xml 中增加 session-timeout 的值。 server.communication.PushHandler$2.run(PushHandler.java:129) at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:242) at com.vaadin.server.communication.PushHandler.access$200(PushHandler. java:55) 在 com.vaadin.server.communication.PushHandler$1.onRequest(PushHandler.java:73)
java - Vaadin 7:过滤器、EntityManager per Request(hibernate)、JPAContainer 和 push/websockets 使用
我正在使用 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 中如何工作?
vaadin - 共享列表在两个 vaadin 组件之间
我有一个多行单列表,该表将从List<String>
. 这List<String>
是通过模态窗口填充的,当此List<String>
表有更新时,必须更新表。
我如何通过 Vaadin 实现这一目标?
任何关于此的指示或示例都会非常有帮助。
谢谢
java - 推送后如何更新 Vaadin Grid?
在从不同的 UI 实例对网格进行更改后,我正在尝试更新 Vaadin 中的网格。
详细地说,我有两个不同的 UI 实例,UI1 和 UI2(来自两个不同浏览器的选项卡)。这些 UI 实例包含一个视图,该视图包含一个由联系人对象组成的网格,这些对象具有各种属性,例如姓名、年龄、性别……
我从 UI1 向网格中添加了一个联系人,我希望 UI2 无需刷新即可立即看到更新的网格。
为了实现这一点,我知道我必须使用我已经使用 Broadcaster 类设置的 Vaadin Push。我的 UI 类中有一个receiveBroadcast()
方法,每当 View 类使用方法向 UI 发送广播时,它都会更新 UI broadcast()
。我的 UI 类的一部分如下所示:
我的 Broadcaster 类在这个链接中是一样的(我只是稍微改变了方法,所以我可以将网格作为参数传递)
然后在我的 ContactBookView 类中,我Broadcaster.broadcast(grid)
在添加或更改项目后调用方法,以便我可以在我的 UI 类的access()
方法中以某种方式更新网格,但我尝试的任何方法似乎都不起作用。我知道推送正在工作,因为当收到广播时,我可以在所有 UI 实例中看到“网格更新”消息。
我试图删除视图并重新初始化
试图完全清空网格并重新填充
试图使用这种丑陋的解决方法强制网格自我更新
尝试执行 JavaScript 查询以强制 UI 同步
但这些都不起作用。也许我做错了什么?仅供参考,我的 Vaadin 版本是 7.5.0。
我将不胜感激任何形式的反馈或建议,
谢谢。
vaadin - Vaadin:自动刷新网格(类似 ajax)
Vaadin 7.4 引入了Grid,一个用于显示表格数据的全新组件。在我的应用程序中,我有一个包含Grid
. 网格填充了动态数据(有一个填充网格容器的休息服务)。
也就是说,我需要像 Ajax 一样不时地自动刷新网格(只是网格,而不刷新整个窗口)。Grid 组件有可能吗?
vaadin - VAADIN Push 不适用于嵌入的 tomcat8
我创建了一个简单的测试应用程序:
当我从 Eclipse 启动它时,一切正常,但是当我将它导出到一个可运行的 jar 并运行它时,我得到了这个错误:
HTTP 状态 500 - com.vaadin.server.ServiceException:java.lang.IllegalStateException:推送不可用。有关详细信息,请参阅以前的日志消息。
这是整个调用堆栈:
我试图将 javax.websocket-api-1.1.jar 添加到库中,但没有任何改变,仍然是同样的错误。
我不知道问题出在哪里,也许我需要添加其他内容,但目前我不知道是什么。
编辑:
我不使用 Maven/Gradle,对于我在 tomcat8 网站上下载的所有需要的嵌入式 tomcat8,而对于测试应用程序战争,我使用了我的一个项目,与非嵌入式 Tomcat8 一起工作正常。
vaadin - Vaadin 推送 - ContextNotActiveException
我在 Wildfly 9.0.2 上使用 Vaadin 7.5.8。在我们的应用程序中,我们需要 Push 支持,所以我添加了 maven 依赖项
并将 PushMode 参数添加到 servlet 初始化。
在应用程序启动时,我将看到我们应用程序的登录页面。从这一点开始,导致服务器通信的每个操作都以以下错误结束:
当我从 servlet 配置中删除 push 参数时,一切正常。我的推送配置有问题吗?
spring-boot - Vaadin @Push 与 Vaadin4Spring 安全性
有人使用 Vaadin @Push 和 vaadin-spring-boot-starter 和 Vaadin4Spring 安全扩展吗?
这是我们项目中与 Vaadin 相关的依赖项:
这是关于 UI 类的注释
并且,Application.java;
一旦我们调用 security.login(username.getValue(), password.getValue()); (安全是 org.vaadin.spring.security.VaadinSecurity;)
我们得到以下异常;
16:36:35.272 [http-nio-8080-exec-9] 错误 cbgcsvviews.login.LoginBox/login 在 login.org.springframework.beans.factory.BeanCreationException 期间发生登录错误:创建名称为“scopedTarget.httpService”的 bean 时出错:范围“请求”对当前线程不活动;如果您打算从单例中引用它,请考虑为该 bean 定义一个作用域代理;嵌套异常是 java.lang.IllegalStateException:未找到线程绑定请求:您是指实际 Web 请求之外的请求属性,还是在原始接收线程之外处理请求?如果您实际上是在 Web 请求中操作并且仍然收到此消息,则您的代码可能在 DispatcherServlet/DispatcherPortlet 之外运行:在这种情况下,
感谢您提供的任何帮助。
spring-boot - 由于 WebSocket 连接已关闭,无法写入完整的消息
我们使用 @Push(transport = Transport.WEBSOCKET_XHR) 启用了 Vaadin Push。当 UI 分离时,我们在日志中看到以下异常。
似乎它不会影响日志中的错误以外的任何内容。你知道如何很好地关闭连接,这样我们就不会用这些错误填充日志吗?
先感谢您。
session - 会话超时通知
我在 Vaadin 上开发的 Web 应用程序 - 使用 Tomcat 服务器的 Servlet。
当用户单击注销链接时,会话超时错误即将到来,然后在一段时间后自动重定向到登录页面。
以前重定向是如此之快,以至于用户无法看到此超时错误。但是现在在 Vaadin 中进行一些版本更新后,用户可以看到这个错误。
提出解决此问题的方法。我正在考虑找到一种方法来阻止浏览器显示 session-timeout 的错误消息,当会话使用注销按钮超时时。
如何实现它。或者您可以提出更好的解决方案吗?
提前致谢。