У меня есть реализация, использующая SpringBoot, Stomp и Websockets. Работает нормально в целом. Но иногда происходит сбой на стороне клиента и исключение на стороне сервера. И я думаю, что это нарушенная связь, может быть. Отключение? Но я не уверен, и я не знаю, как обработать это исключение, так как трассировка стека не является частью моих классов. Это происходит полностью внутри фреймворка, и я думаю, что тогда не пойму этого.
Любой совет?
31 Aug 2018 11:23:23 [MessageBroker-2] ERROR springframework.web.socket.handler.ExceptionWebSocketHandlerDecorator - Unhandled error for ExceptionWebSocketHandlerDecorator [delegate=LoggingWebSocketHandlerDecorator [delegate=SubProtocolWebSocketHandler[StompSubProtocolHandler[v10.stomp, v11.stomp, v12.stomp]]]]
org.springframework.messaging.MessageDeliveryException: Failed to send message to ExecutorSubscribableChannel[clientInboundChannel]; nested exception is org.springframework.security.access.AccessDeniedException: Access is denied
at org.springframework.messaging.support.AbstractMessageChannel.send(AbstractMessageChannel.java:127) ~[spring-messaging-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.messaging.support.AbstractMessageChannel.send(AbstractMessageChannel.java:104) ~[spring-messaging-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.socket.messaging.StompSubProtocolHandler.afterSessionEnded(StompSubProtocolHandler.java:643) ~[spring-websocket-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.socket.messaging.SubProtocolWebSocketHandler.clearSession(SubProtocolWebSocketHandler.java:482) ~[spring-websocket-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.socket.messaging.SubProtocolWebSocketHandler.afterConnectionClosed(SubProtocolWebSocketHandler.java:368) ~[spring-websocket-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.socket.handler.WebSocketHandlerDecorator.afterConnectionClosed(WebSocketHandlerDecorator.java:85) ~[spring-websocket-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.socket.handler.LoggingWebSocketHandlerDecorator.afterConnectionClosed(LoggingWebSocketHandlerDecorator.java:72) ~[spring-websocket-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.socket.handler.ExceptionWebSocketHandlerDecorator.afterConnectionClosed(ExceptionWebSocketHandlerDecorator.java:78) [spring-websocket-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession.close(AbstractSockJsSession.java:216) [spring-websocket-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.socket.sockjs.transport.session.AbstractSockJsSession.close(AbstractSockJsSession.java:188) [spring-websocket-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.web.socket.sockjs.transport.TransportHandlingSockJsService$1.run(TransportHandlingSockJsService.java:379) [spring-websocket-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-4.3.10.RELEASE.jar:4.3.10.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_181]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_181]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_181]