【发布时间】:2019-10-21 04:51:25
【问题描述】:
当我在 Tomcat 8.0.52 中部署我的应用程序时,以下代码按预期工作:
button.addClickHandler(() -> {
UI ui = UI.getCurrent();
ui.access(() -> {
spinner.setVisible(true);
});
ui.push();
try
{
Thread.sleep(5000);
}
catch (InterruptedException e)
{
LOG.error("", e)
}
spinner.setVisible(false);
});
给ui.access() 的Runnable 显示一个微调器,5 秒后该微调器被隐藏。
当我在 Tomcat 8.0.21 中部署应用程序时,Runnable 未执行,因为未显示微调器。
我的 UI 带有 @Push(value = PushMode.MANUAL, transport = Transport.WEBSOCKET_XHR) 注释
Push 在两个 Tomcat 版本中都可以正常工作,问题出在 UI 的 access() 方法上。
知道为什么ui.access() 在 Tomcat 8.0.21 中不起作用吗?
【问题讨论】:
-
在 clickhandler 中你不需要
ui.access代码,因为这已经由框架完成了。您需要创建一个单独的线程,然后将这些内容与 clickHandler 方法异步。