Java Springboot 2.2.11 websocket连接问题
在我将SpringBoot从2.2.10更新到2.2.11之后,如果我尝试连接我的客户机,我总是会收到ConnectionLostException 以下是我的测试课程的一部分:Java Springboot 2.2.11 websocket连接问题,java,spring,spring-boot,websocket,Java,Spring,Spring Boot,Websocket,在我将SpringBoot从2.2.10更新到2.2.11之后,如果我尝试连接我的客户机,我总是会收到ConnectionLostException 以下是我的测试课程的一部分: @BeforeEach() public void setup() throws InterruptedException, ExecutionException, TimeoutException { URL = "ws://localhost:" + port + &
@BeforeEach()
public void setup() throws InterruptedException, ExecutionException, TimeoutException {
URL = "ws://localhost:" + port + "/notifications";
WebSocketStompClient stompClient = new WebSocketStompClient(new
SockJsClient(createTransportClient()));
stompClient.setMessageConverter(new SimpleMessageConverter());
stompSession = stompClient.connect(URL, new StompSessionHandlerAdapter() {
}).get(3, SECONDS);
}
这是堆栈跟踪:
java.util.concurrent.ExecutionException: org.springframework.messaging.simp.stomp.ConnectionLostException: Connection closed
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:205)
at org.springframework.util.concurrent.SettableListenableFuture.get(SettableListenableFuture.java:134)
at de.psb_gmbh.selektron.apigateway.NotificationControllerTest.setup(NotificationControllerTest.java:54)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1540)
at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:230)
at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:58)
Caused by: org.springframework.messaging.simp.stomp.ConnectionLostException: Connection closed
at org.springframework.messaging.simp.stomp.DefaultStompSession.afterConnectionClosed(DefaultStompSession.java:518)
at org.springframework.web.socket.messaging.WebSocketStompClient$WebSocketTcpConnectionHandlerAdapter.afterConnectionClosed(WebSocketStompClient.java:352)
at org.springframework.web.socket.handler.WebSocketHandlerDecorator.afterConnectionClosed(WebSocketHandlerDecorator.java:85)
at org.springframework.web.socket.handler.LoggingWebSocketHandlerDecorator.afterConnectionClosed(LoggingWebSocketHandlerDecorator.java:72)
at org.springframework.web.socket.sockjs.client.AbstractClientSockJsSession.afterTransportClosed(AbstractClientSockJsSession.java:350)
at org.springframework.web.socket.sockjs.client.WebSocketTransport$ClientSockJsWebSocketHandler.afterConnectionClosed(WebSocketTransport.java:173)
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.onClose(StandardWebSocketHandlerAdapter.java:145)
at org.apache.tomcat.websocket.WsSession.fireEndpointOnClose(WsSession.java:556)
at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:502)
at org.apache.tomcat.websocket.WsSession.doClose(WsSession.java:460)
at org.apache.tomcat.websocket.WsSession.close(WsSession.java:447)
at org.springframework.web.socket.adapter.standard.StandardWebSocketSession.closeInternal(StandardWebSocketSession.java:235)
at org.springframework.web.socket.adapter.AbstractWebSocketSession.close(AbstractWebSocketSession.java:142)
at org.springframework.web.socket.sockjs.client.WebSocketClientSockJsSession.disconnect(WebSocketClientSockJsSession.java:127)
at org.springframework.web.socket.sockjs.client.AbstractClientSockJsSession.closeInternal(AbstractClientSockJsSession.java:213)
at org.springframework.web.socket.sockjs.client.AbstractClientSockJsSession.silentClose(AbstractClientSockJsSession.java:190)
at org.springframework.web.socket.sockjs.client.AbstractClientSockJsSession.handleCloseFrame(AbstractClientSockJsSession.java:322)
at org.springframework.web.socket.sockjs.client.AbstractClientSockJsSession.handleFrame(AbstractClientSockJsSession.java:233)
at org.springframework.web.socket.sockjs.client.WebSocketTransport$ClientSockJsWebSocketHandler.handleTextMessage(WebSocketTransport.java:163)
at org.springframework.web.socket.handler.AbstractWebSocketHandler.handleMessage(AbstractWebSocketHandler.java:43)
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.handleTextMessage(StandardWebSocketHandlerAdapter.java:114)
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.access$000(StandardWebSocketHandlerAdapter.java:43)
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:85)
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:82)
at org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:402)
at org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:502)
at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:301)
at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:133)
at org.apache.tomcat.websocket.WsFrameClient.processSocketRead(WsFrameClient.java:95)
at org.apache.tomcat.websocket.WsFrameClient.resumeProcessing(WsFrameClient.java:212)
at org.apache.tomcat.websocket.WsFrameClient.access$500(WsFrameClient.java:31)
at org.apache.tomcat.websocket.WsFrameClient$WsFrameClientCompletionHandler.doResumeProcessing(WsFrameClient.java:189)
at org.apache.tomcat.websocket.WsFrameClient$WsFrameClientCompletionHandler.completed(WsFrameClient.java:163)
at org.apache.tomcat.websocket.WsFrameClient$WsFrameClientCompletionHandler.completed(WsFrameClient.java:148)
at java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127)
at java.base/sun.nio.ch.Invoker$2.run(Invoker.java:219)
at java.base/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
同样,我唯一改变的是将spring boot更新为2.2.11版。
我没有发现在SpringBoot2.2.11中websocket处理发生了变化
编辑:
如果我运行angular web应用程序,我会在控制台中收到以下消息:
到“ws://localhost:4200/sockjs node/589/savha4qo/WebSocket”的WebSocket连接失败:WebSocket在建立连接之前已关闭
编辑2:
状态代码是1002
编辑3:
问题是,我还使用了SpringCloudStarterSleuth中的org.springframework.cloud。如果我把它取下来,一切正常。但是我也需要它。试着从项目依赖项中排除不必要的lib,正如您在编辑中提到的那样,它将起作用。对于mvn或gradle