我正在遵循本教程Vaadin 微服务 - 高可用性, 以便构建具有多个实例的 Vaadin 前端,通过会话复制提供高可用性。
问题是,仅运行 1 个配置了 Spring Session 和 Hazelcast 的前端实例,我会以随机方式收到以下错误(刷新浏览器有时会出现错误,有时似乎工作正常):
java.lang.UnsupportedOperationException:来自客户端的意外消息 ID。预期同步 ID:0,得到 1。
禁用 Spring Session 和 Hazelcast 问题不会出现,一切似乎都按预期工作。
你有没有发现同样的问题?你能解决这个问题吗?或者你能给我一些线索来找出问题的原因吗?
提前致谢。
这是完整的错误堆栈跟踪:
java.lang.UnsupportedOperationException: Unexpected message id from the client. Expected sync id: 0, got 1. Message start: {"csrfToken":"70dac978-95f0-4c38-8bd5-10f0f597a496","rpc":[{"type":"mSync","node":17,"feature":1,"property":"opened","value":true}],"syncId":-1,"clientId":1}
at com.vaadin.flow.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:303) ~[flow-server-1.4.4.jar:1.4.4]
at com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:89) ~[flow-server-1.4.4.jar:1.4.4]
at com.vaadin.flow.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) ~[flow-server-1.4.4.jar:1.4.4]
at com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1507) ~[flow-server-1.4.4.jar:1.4.4]
at com.vaadin.flow.server.VaadinServlet.service(VaadinServlet.java:242) [flow-server-1.4.4.jar:1.4.4]
at com.vaadin.flow.spring.SpringServlet.service(SpringServlet.java:81) [vaadin-spring-11.0.0.jar:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) [tomcat-embed-core-9.0.17.jar:9.0.17]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [tomcat-embed-core-9.0.17.jar:9.0.17]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-9.0.17.jar:9.0.17]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-embed-websocket-9.0.17.jar:9.0.17]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-9.0.17.jar:9.0.17]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) …Run Code Online (Sandbox Code Playgroud)