如何解决在不锁定会话的情况下无法访问VaadinSession或UI中的状态
Vaadin 14
- 我们使用Vaadin应用程序上线了。这是我第一次上线。当我们尝试使用倍数标签重新加载整个页面时(从数据库填充内容)。仅当服务器上的负载增加(10人以上)时,才会出现此错误。当一两个人使用该应用程序时,不会出现此类错误/异常。
以下是出现此错误的代码之一:
private void reloadAssignmentButton_onClick(final ClickEvent<Button> event)
{
try
{
this.clearAllLayouts();
this.makeAllTabsInVisible();
AssignmentFileDashboardView.log.info(UI.getCurrent().getSession().getAttribute(ConfigProperties.SESSION_KEY)
+ "::AssignmentFileDashboardView:::reloadAssignmentButton_onClick:::::CAN_FILE_NUMBER"
+ UI.getCurrent().getSession().getAttribute(ConfigProperties.CAN_FILE_NUMBER).toString());
this.loadAssignment(
Long.parseLong(UI.getCurrent().getSession()
.getAttribute(ConfigProperties.CAN_FILE_NUMBER).toString()));
AssignmentFileDashboardView.tabs.setSelectedTab(AssignmentFileDashboardView.assignmentTab);
}
catch(final Exception e)
{
AssignmentFileDashboardView.log
.error(UI.getCurrent().getSession().getAttribute(ConfigProperties.SESSION_KEY)
+ "::AssignmentFileDashBoardView::assignmentRefreshButton_buttonClick::error:: " + e.getMessage()
+ e.getStackTrace(),e);
}
}
这是我的tomcat配置:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="30000" redirectPort="8443" maxThreads="1000" minSpareThreads="50" acceptCount="300" enableLookUps="false" maxKeepAliveRequest = "1"/>
-
单击这些选项卡有时会停止工作。再次有一个或两个用户,它可以正常工作,但有时会停止工作。
-
有时,我单击选项卡,页面加载为空白。再次有1个或2个用户使用它没问题。
(最初,我以为该选项卡可能会出现问题,并且我将选项卡更改为多个按钮,以为该按钮将始终调用click事件,但现在按钮有时也会执行相同的操作。)
我们还活着,请帮助我。预先感谢。
解决方法
- 我的UI是父页面。
- 该父页面具有垂直布局,其中子页面正在打开。
- 此父页面具有一些按钮(需要通过子页面事件显示和隐藏),标签(需要通过子页面事件显示和隐藏),标签(需要通过子页面事件更新)诸如此类的东西。
- 为了进行所有这些更新,我将父级“ Vaadin组件”设为静态,因为我无法创建父级页面的对象,因为我们需要在打开页面时对其进行更新。
就我而言,拥有“静态” Vaadin组件给了我这个问题以及许多其他问题。在这种情况下,一个工作的人没有遇到任何问题。但是当开始生产时,这使我的生活很痛苦。
学习:请不要尝试将Vaadin组件设置为“静态”。实际上,请尽量避免使用“静态”关键字(如果您不知道后果,在这种情况下就是我)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。