From a27062040a3cfca48db4f72323cf6a9a6876c968 Mon Sep 17 00:00:00 2001 From: wulin Date: Mon, 25 Sep 2023 17:42:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E8=A3=85=E9=83=A8=E5=88=86nlp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/SystemTalkAnswerConfigService.java | 14 +- .../java/com/qiuguo/iot/third}/nlp/INlp.java | 3 +- .../java/com/qiuguo/iot/third}/nlp/Nlp.java | 2 +- .../com/qiuguo/iot/third}/nlp/NlpKey.java | 2 +- .../qiuguo/iot/third}/nlp/action/Action.java | 2 +- .../qiuguo/iot/third}/nlp/action/Actions.java | 22 +- .../qiuguo/iot/third}/nlp/lac/LacRequest.java | 2 +- .../iot/third/service/LacNlpService.java} | 21 +- .../qiuguo/iot/third/service/NlpService.java | 22 + iot-modules/iot-box-websocket-api/pom.xml | 6 + .../api/IotBoxWebsocketApplication.java | 2 +- .../api/handler/BoxWebSocketHandler.java | 98 +- .../api/handler/CustomerWebSocketHandler.java | 6 +- logs/iot-box-websocket-api/error.log | 2180 +++++++++++++++++ logs/iot-box-websocket-api/info.log | 2180 +++++++++++++++++ logs/iot-box-websocket-api/warn.log | 2180 +++++++++++++++++ 16 files changed, 6680 insertions(+), 62 deletions(-) rename iot-common/{iot-base/src/main/java/com/qiuguo/iot/base => iot-third/src/main/java/com/qiuguo/iot/third}/nlp/INlp.java (78%) rename iot-common/{iot-base/src/main/java/com/qiuguo/iot/base => iot-third/src/main/java/com/qiuguo/iot/third}/nlp/Nlp.java (79%) rename iot-common/{iot-base/src/main/java/com/qiuguo/iot/base => iot-third/src/main/java/com/qiuguo/iot/third}/nlp/NlpKey.java (94%) rename iot-common/{iot-base/src/main/java/com/qiuguo/iot/base => iot-third/src/main/java/com/qiuguo/iot/third}/nlp/action/Action.java (89%) rename iot-common/{iot-base/src/main/java/com/qiuguo/iot/base => iot-third/src/main/java/com/qiuguo/iot/third}/nlp/action/Actions.java (59%) rename iot-common/{iot-base/src/main/java/com/qiuguo/iot/base => iot-third/src/main/java/com/qiuguo/iot/third}/nlp/lac/LacRequest.java (81%) rename iot-common/{iot-base/src/main/java/com/qiuguo/iot/base/nlp/lac/LacNlp.java => iot-third/src/main/java/com/qiuguo/iot/third/service/LacNlpService.java} (86%) create mode 100644 iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/NlpService.java diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/system/SystemTalkAnswerConfigService.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/system/SystemTalkAnswerConfigService.java index 8801b48..51470cd 100644 --- a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/system/SystemTalkAnswerConfigService.java +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/service/system/SystemTalkAnswerConfigService.java @@ -97,6 +97,9 @@ public class SystemTalkAnswerConfigService extends GenericReactiveCrudService(); nlp.getKeys().sort(Comparator.comparing(NlpKey::getType)); //解析,按照type从小到大排序 Action action = new Action(); + String name = ""; action.setName(new ArrayList<>()); for (NlpKey key : nlp.getKeys() ) { @@ -25,10 +27,18 @@ public class Actions { if(key.getType().equals(ChinesePartSpeechEnum.v.getCode())){ action.setAction(key.getKey()); }else if(key.getType().equals(ChinesePartSpeechEnum.n.getCode())){ - action.getName().add(key.getKey()); - }else if(key.getType().equals(ChinesePartSpeechEnum.a.getCode())){ - action.setStatus(key.getKey()); + name += key.getKey(); + //action.getName().add(key.getKey()); + }else if(key.getType().equals(ChinesePartSpeechEnum.c.getCode())){ + //action.setStatus(key.getKey()); + if(StringUtils.isNotEmpty(name)){ + action.getName().add(name); + } } } + if(StringUtils.isNotEmpty(name)){ + action.getName().add(name); + } + actions.add(action); } } diff --git a/iot-common/iot-base/src/main/java/com/qiuguo/iot/base/nlp/lac/LacRequest.java b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/nlp/lac/LacRequest.java similarity index 81% rename from iot-common/iot-base/src/main/java/com/qiuguo/iot/base/nlp/lac/LacRequest.java rename to iot-common/iot-third/src/main/java/com/qiuguo/iot/third/nlp/lac/LacRequest.java index 28d0e64..8c180c8 100644 --- a/iot-common/iot-base/src/main/java/com/qiuguo/iot/base/nlp/lac/LacRequest.java +++ b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/nlp/lac/LacRequest.java @@ -1,4 +1,4 @@ -package com.qiuguo.iot.base.nlp.lac; +package com.qiuguo.iot.third.nlp.lac; import lombok.Data; diff --git a/iot-common/iot-base/src/main/java/com/qiuguo/iot/base/nlp/lac/LacNlp.java b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/LacNlpService.java similarity index 86% rename from iot-common/iot-base/src/main/java/com/qiuguo/iot/base/nlp/lac/LacNlp.java rename to iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/LacNlpService.java index fa1095b..2d35623 100644 --- a/iot-common/iot-base/src/main/java/com/qiuguo/iot/base/nlp/lac/LacNlp.java +++ b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/LacNlpService.java @@ -1,16 +1,17 @@ -package com.qiuguo.iot.base.nlp.lac; +package com.qiuguo.iot.third.service; import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.qiuguo.iot.base.nlp.INlp; -import com.qiuguo.iot.base.nlp.Nlp; -import com.qiuguo.iot.base.nlp.NlpKey; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import com.qiuguo.iot.third.nlp.INlp; +import com.qiuguo.iot.third.nlp.Nlp; +import com.qiuguo.iot.third.nlp.NlpKey; +import com.qiuguo.iot.third.nlp.lac.LacRequest; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpHeaders; +import org.springframework.stereotype.Service; import org.springframework.web.reactive.function.client.WebClient; import reactor.core.publisher.Mono; @@ -28,14 +29,16 @@ import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; * @since 2023-09-06 */ //LAC中的tag说明 v:动词 n:名称 PER/nr:人名 a:量词 w:标点符号 m:数字(中文、阿拉伯) TIME:时间词 vn:动名词组 xc:语气词 c:连接词 +@Service @Slf4j -public class LacNlp implements INlp { +public class LacNlpService implements INlp { private static WebClient webClient = WebClient.builder() .defaultHeader(HttpHeaders.CONTENT_TYPE, APPLICATION_JSON_VALUE).build(); - + @Value("${lac.url}") + private String url; private Mono getNlpFromLac(LacRequest request){ - return webClient.post().uri(SpringUtil.getProperty("lac.url") + "/predict/lac").bodyValue(JSONObject.toJSON(request)) + return webClient.post().uri(url + "/predict/lac").bodyValue(JSONObject.toJSON(request)) .retrieve() .bodyToMono(JSONObject.class).doOnNext(res -> { if (!Objects.equals(res.getInteger("status"), 0)) { diff --git a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/NlpService.java b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/NlpService.java new file mode 100644 index 0000000..da55fb9 --- /dev/null +++ b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/NlpService.java @@ -0,0 +1,22 @@ +package com.qiuguo.iot.third.service; + +import com.qiuguo.iot.third.nlp.INlp; +import com.qiuguo.iot.third.nlp.action.Actions; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Mono; + +import javax.annotation.Resource; + +@Service +@Slf4j +public class NlpService { + @Resource + private LacNlpService liguoNlpService; + + public Mono getActionWithLacSingle(String text){ + return liguoNlpService.geSingletNlp(text).map(nlp -> { + return new Actions(nlp); + }); + } +} diff --git a/iot-modules/iot-box-websocket-api/pom.xml b/iot-modules/iot-box-websocket-api/pom.xml index e6fd93c..a11e397 100644 --- a/iot-modules/iot-box-websocket-api/pom.xml +++ b/iot-modules/iot-box-websocket-api/pom.xml @@ -57,6 +57,12 @@ spring-boot-starter-test test + + com.qiuguo.iot + iot-third + 0.0.1-SNAPSHOT + compile + diff --git a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/IotBoxWebsocketApplication.java b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/IotBoxWebsocketApplication.java index e97e8c2..8f07e44 100644 --- a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/IotBoxWebsocketApplication.java +++ b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/IotBoxWebsocketApplication.java @@ -5,7 +5,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -@SpringBootApplication(scanBasePackages = {"com.qiuguo.iot.box.websocket.api", "com.qiuguo.iot.data.service"}) +@SpringBootApplication(scanBasePackages = {"com.qiuguo.iot.box.websocket.api", "com.qiuguo.iot.data.service", "com.qiuguo.iot.third.service"}) @EnableEasyormRepository(value = "com.qiuguo.iot.data.entity.*") public class IotBoxWebsocketApplication { diff --git a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BoxWebSocketHandler.java b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BoxWebSocketHandler.java index 8beff7a..f9e790e 100644 --- a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BoxWebSocketHandler.java +++ b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BoxWebSocketHandler.java @@ -8,9 +8,11 @@ import com.qiuguo.iot.box.websocket.api.domain.box.BoxSession; import com.qiuguo.iot.box.websocket.api.domain.box.BoxTalkMessage; import com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration; import com.qiuguo.iot.data.entity.device.DeviceInfoEntity; +import com.qiuguo.iot.data.entity.system.SystemTalkAnswerConfigEntity; import com.qiuguo.iot.data.request.device.DeviceInfoRequest; import com.qiuguo.iot.data.service.device.DeviceInfoService; import com.qiuguo.iot.data.service.system.SystemTalkAnswerConfigService; +import com.qiuguo.iot.third.service.NlpService; import lombok.extern.slf4j.Slf4j; import org.slf4j.MDC; import org.springframework.beans.factory.annotation.Value; @@ -42,6 +44,9 @@ public class BoxWebSocketHandler implements WebSocketHandler { @Resource private SystemTalkAnswerConfigService systemTalkAnswerConfigService; + @Resource + private NlpService nlpService; + public static ConcurrentHashMap group = new ConcurrentHashMap<>(); @Override @@ -57,49 +62,33 @@ public class BoxWebSocketHandler implements WebSocketHandler { return session.close(); } String token = headers.get("signature").get(0); - - ReactiveValueOperations operations = reactiveStringRedisTemplate.opsForValue(); + //校验token + checkToken(sn, linkTime, token); // - operations.get(RedisConstans.DEVICE_INFO + sn).defaultIfEmpty("").flatMap(s -> { - if(com.qiuguo.iot.base.utils.StringUtils.isNotBlank(s)){ - try{ - DeviceInfoEntity dv = JSONObject.parseObject(s, DeviceInfoEntity.class); - return Mono.just(dv); - }catch (Exception e){ - log.info("转换异常{}", e); - } - } - DeviceInfoRequest request = new DeviceInfoRequest(); - request.setSn(sn); - return deviceInfoService.selectDeviceInfoByRequest(request).defaultIfEmpty(new DeviceInfoEntity()).map(dv -> { - if(dv.getId() != null){ - operations.set(RedisConstans.DEVICE_INFO + dv.getSn(), JSONObject.toJSONString(dv), RedisConstans.ONE_HOUR).subscribe();//直接提交订阅 - } - return dv; - }); - }).map(dv ->{ - String snMd5 = MD5.create().digestHex(sn).toUpperCase(); - String wifiMd5 = MD5.create().digestHex(dv.getWifiMac()).toUpperCase(); - String btMd5 = MD5.create().digestHex(dv.getBtMac()).toUpperCase(); - String signalMd5 = MD5.create().digestHex(snMd5 + wifiMd5 + btMd5 + linkTime + dv.getKey()).toUpperCase(); - if(!signalMd5.equals(token)){ - log.info("设备{},验签失败", sn); - //session.send(session.textMessage("")); - BoxSession boxSession = getBoxSessionWithSn(sn); - if(boxSession != null){ - boxSession.getSink().next(session.textMessage("验签失败")); - } - session.close().subscribe(); - } - return Mono.empty(); - }).subscribe(); - log.info("登录成功SN:{}", sn); + log.info("登录成功SN:{}", sn); Mono input = session.receive().map(webSocketMessage ->{ //MDC.put(LogMdcConfiguration.PRINT_LOG_ID, getBoxSessionWithSn().getLogId()); String text = webSocketMessage.getPayloadAsText(); log.info("设备端收到消息:{}", text); BoxTalkMessage boxTalkMessage = JSONObject.parseObject(text, BoxTalkMessage.class); + nlpService.getActionWithLacSingle(boxTalkMessage.getMessage()).map(actions -> { + //处理 + if(actions.getActions().size() > 0){ + SystemTalkAnswerConfigEntity talkAnswerConfigEntity = + systemTalkAnswerConfigService.getSystemTalkWithKey(actions.getActions().get(0).getAction()); + log.info("匹配到自定义指令{}", talkAnswerConfigEntity); + }else{ + //调用千问回答 + log.info("未匹配到自定义命令,调用千问"); + } + + return Mono.empty(); + }).thenEmpty(empty ->{ + //调用千问回答 + log.info("未匹配到自定义命令,调用千问"); + }).subscribe(); + log.info("收到SN:{},消息{}", boxTalkMessage.getSn(), boxTalkMessage.getMessage()); //MDC.remove(LogMdcConfiguration.PRINT_LOG_ID); return Mono.empty(); @@ -120,9 +109,44 @@ public class BoxWebSocketHandler implements WebSocketHandler { log.info("设备断开连接SN:{}", boxSession.getSn()); // MDC.remove(LogMdcConfiguration.PRINT_LOG_ID); }).then(); + } + private void checkToken(String sn, Long linkTime, String token){ + ReactiveValueOperations operations = reactiveStringRedisTemplate.opsForValue(); + operations.get(RedisConstans.DEVICE_INFO + sn).defaultIfEmpty("").flatMap(s -> { + if(com.qiuguo.iot.base.utils.StringUtils.isNotBlank(s)){ + try{ + DeviceInfoEntity dv = JSONObject.parseObject(s, DeviceInfoEntity.class); + return Mono.just(dv); + }catch (Exception e){ + log.info("转换异常{}", e); + } + } + DeviceInfoRequest request = new DeviceInfoRequest(); + request.setSn(sn); + return deviceInfoService.selectDeviceInfoByRequest(request).defaultIfEmpty(new DeviceInfoEntity()).map(dv -> { + if(dv.getId() != null){ + operations.set(RedisConstans.DEVICE_INFO + dv.getSn(), JSONObject.toJSONString(dv), RedisConstans.ONE_HOUR).subscribe();//直接提交订阅 + } - + return dv; + }); + }).map(dv ->{ + String snMd5 = MD5.create().digestHex(sn).toUpperCase(); + String wifiMd5 = MD5.create().digestHex(dv.getWifiMac()).toUpperCase(); + String btMd5 = MD5.create().digestHex(dv.getBtMac()).toUpperCase(); + String signalMd5 = MD5.create().digestHex(snMd5 + wifiMd5 + btMd5 + linkTime + dv.getKey()).toUpperCase(); + if(!signalMd5.equals(token)){ + log.info("设备{},验签失败", sn); + //session.send(session.textMessage("")); + BoxSession boxSession = getBoxSessionWithSn(sn); + if(boxSession != null){ + boxSession.getSink().next(boxSession.getSession().textMessage("验签失败")); + } + boxSession.getSession().close().subscribe(); + } + return Mono.empty(); + }).subscribe(); } public BoxSession getBoxSessionWithSn(String sn) { diff --git a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/CustomerWebSocketHandler.java b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/CustomerWebSocketHandler.java index 18c6d5a..91d8e3e 100644 --- a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/CustomerWebSocketHandler.java +++ b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/CustomerWebSocketHandler.java @@ -21,6 +21,7 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import javax.annotation.Resource; +import java.util.List; import java.util.concurrent.ConcurrentHashMap; @Component @@ -40,6 +41,7 @@ public class CustomerWebSocketHandler implements WebSocketHandler { public Mono handle(WebSocketSession session) { HandshakeInfo handshakeInfo = session.getHandshakeInfo(); HttpHeaders headers = handshakeInfo.getHeaders(); + //List tokens = headers.get("token"); String token = headers.get("token").get(0); Long userId = Long.valueOf(headers.get("userId").get(0)); Long linkTime = Long.parseLong(headers.get("time").get(0)); @@ -50,7 +52,7 @@ public class CustomerWebSocketHandler implements WebSocketHandler { } ReactiveValueOperations operations = reactiveStringRedisTemplate.opsForValue(); - operations.get(RedisConstans.DEVICE_INFO + userId).defaultIfEmpty("").flatMap(s -> { + operations.get(RedisConstans.DEVICE_INFO + userId).defaultIfEmpty("ba2ef9fd8a70a6ac72c38aa6a46be4f6").flatMap(s -> { if(com.qiuguo.iot.base.utils.StringUtils.isNotBlank(s)){ if(!token.equals(s)){ log.info("验签失败{}", userId); @@ -87,7 +89,7 @@ public class CustomerWebSocketHandler implements WebSocketHandler { return Mono.zip(input, output).doFinally(signalType -> { // MDC.put(LogMdcConfiguration.PRINT_LOG_ID, requestId); group.remove(userSession.getUserId());//断链后及时移除 - log.info("设备断开连接SN:{}", userSession.getUserId()); + log.info("用户断开连接SN:{}", userSession.getUserId()); // MDC.remove(LogMdcConfiguration.PRINT_LOG_ID); }).then(); } diff --git a/logs/iot-box-websocket-api/error.log b/logs/iot-box-websocket-api/error.log index 5842e64..78eb6ab 100644 --- a/logs/iot-box-websocket-api/error.log +++ b/logs/iot-box-websocket-api/error.log @@ -57,3 +57,2183 @@ 09:18:10.484 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP 09:18:20.515 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] 09:18:20.516 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +14:45:45.581 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [3e40e613-1]- api start time:1695624345581 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"VwYz/pkoM4NyjLK+IuQdZg==", upgrade:"websocket"] +14:45:45.613 [reactor-http-nio-2] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [3e40e613-1]- [3e40e613-1] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +14:45:45.615 [reactor-http-nio-2] ERROR r.n.h.s.HttpServerOperations - [error,324] [3e40e613-1]- [3e40e613-1, L:/192.168.8.175:8080 - R:/192.168.8.61:58287] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +14:45:45.617 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [3e40e613-1]- api end time:1695624345616, total time:35 +14:54:04.699 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [f2bf8af4-2]- api start time:1695624844699 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"24I3BEmIznXfkSO5U7qBMQ==", upgrade:"websocket"] +14:54:04.701 [reactor-http-nio-3] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [f2bf8af4-2]- [f2bf8af4-2] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +14:54:04.701 [reactor-http-nio-3] ERROR r.n.h.s.HttpServerOperations - [error,324] [f2bf8af4-2]- [f2bf8af4-1, L:/192.168.8.175:8080 - R:/192.168.8.61:58320] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +14:54:04.702 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [f2bf8af4-2]- api end time:1695624844702, total time:3 +14:57:58.818 [reactor-http-nio-4] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [1aea5dbb-3]- api start time:1695625078818 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"TjSnblkBBAm6gdo+ZwxxMA==", upgrade:"websocket"] +14:57:58.820 [reactor-http-nio-4] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [1aea5dbb-3]- [1aea5dbb-3] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +14:57:58.820 [reactor-http-nio-4] ERROR r.n.h.s.HttpServerOperations - [error,324] [1aea5dbb-3]- [1aea5dbb-1, L:/192.168.8.175:8080 - R:/192.168.8.61:58348] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +14:57:58.821 [reactor-http-nio-4] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [1aea5dbb-3]- api end time:1695625078821, total time:3 +14:58:24.754 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [2632921b-4]- api start time:1695625104754 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"H6dOOV8YFqYQj+1WvuubOw==", upgrade:"websocket"] +14:58:24.756 [reactor-http-nio-5] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [2632921b-4]- [2632921b-4] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +14:58:24.756 [reactor-http-nio-5] ERROR r.n.h.s.HttpServerOperations - [error,324] [2632921b-4]- [2632921b-1, L:/192.168.8.175:8080 - R:/192.168.8.61:58378] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +14:58:24.757 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [2632921b-4]- api end time:1695625104757, total time:3 +15:02:27.082 [com.alibaba.nacos.naming.beat.sender] ERROR c.a.n.client.naming - [callServer,617] []- [NA] failed to request +java.net.SocketTimeoutException: connect timed out + at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) + at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81) + at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476) + at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218) + at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200) + at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162) + at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) + at java.net.Socket.connect(Socket.java:606) + at sun.net.NetworkClient.doConnect(NetworkClient.java:175) + at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) + at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) + at sun.net.www.http.HttpClient.(HttpClient.java:242) + at sun.net.www.http.HttpClient.New(HttpClient.java:339) + at sun.net.www.http.HttpClient.New(HttpClient.java:357) + at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1240) + at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1167) + at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1061) + at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:995) + at com.alibaba.nacos.common.http.client.request.JdkHttpClientRequest.execute(JdkHttpClientRequest.java:112) + at com.alibaba.nacos.common.http.client.NacosRestTemplate.execute(NacosRestTemplate.java:482) + at com.alibaba.nacos.common.http.client.NacosRestTemplate.exchangeForm(NacosRestTemplate.java:427) + at com.alibaba.nacos.client.naming.net.NamingProxy.callServer(NamingProxy.java:603) + at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:526) + at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:498) + at com.alibaba.nacos.client.naming.net.NamingProxy.sendBeat(NamingProxy.java:433) + at com.alibaba.nacos.client.naming.beat.BeatReactor$BeatTask.run(BeatReactor.java:167) + at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) + at java.util.concurrent.FutureTask.run(FutureTask.java:266) + at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) + at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) + at java.lang.Thread.run(Thread.java:750) +15:18:23.502 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [ab3c8841-5]- api start time:1695626303502 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"07MTfc3t2d0WM04AXA5+NA==", upgrade:"websocket"] +15:18:23.505 [reactor-http-nio-6] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [ab3c8841-5]- [ab3c8841-5] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:18:23.505 [reactor-http-nio-6] ERROR r.n.h.s.HttpServerOperations - [error,324] [ab3c8841-5]- [ab3c8841-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59092] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:18:23.506 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [ab3c8841-5]- api end time:1695626303506, total time:4 +15:29:49.216 [reactor-http-nio-8] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [59cd57ca-6]- api start time:1695626989216 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"+mtAHsqRX7b7mteGWRm91A==", upgrade:"websocket"] +15:29:49.220 [reactor-http-nio-8] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [59cd57ca-6]- [59cd57ca-6] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:29:49.221 [reactor-http-nio-8] ERROR r.n.h.s.HttpServerOperations - [error,324] [59cd57ca-6]- [59cd57ca-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59124] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:29:49.222 [reactor-http-nio-8] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [59cd57ca-6]- api end time:1695626989222, total time:6 +15:30:50.724 [reactor-http-nio-9] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [e651358e-7]- api start time:1695627050724 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"jZh/fma8dn66OjTg3Wc/3A==", upgrade:"websocket"] +15:30:50.727 [reactor-http-nio-9] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [e651358e-7]- [e651358e-7] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:30:50.727 [reactor-http-nio-9] ERROR r.n.h.s.HttpServerOperations - [error,324] [e651358e-7]- [e651358e-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59153] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:30:50.728 [reactor-http-nio-9] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [e651358e-7]- api end time:1695627050728, total time:4 +15:31:47.207 [reactor-http-nio-10] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [98f2001f-8]- api start time:1695627107207 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"YAKptr05aHqEK0oYEw9pgg==", upgrade:"websocket"] +15:31:47.209 [reactor-http-nio-10] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [98f2001f-8]- [98f2001f-8] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:31:47.209 [reactor-http-nio-10] ERROR r.n.h.s.HttpServerOperations - [error,324] [98f2001f-8]- [98f2001f-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59182] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:31:47.211 [reactor-http-nio-10] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [98f2001f-8]- api end time:1695627107211, total time:4 +15:34:32.465 [reactor-http-nio-11] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [cf234238-9]- api start time:1695627272465 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"itfi9xskaP2KRwWfCqKDgg==", upgrade:"websocket"] +15:34:32.467 [reactor-http-nio-11] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [cf234238-9]- [cf234238-9] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:34:32.468 [reactor-http-nio-11] ERROR r.n.h.s.HttpServerOperations - [error,324] [cf234238-9]- [cf234238-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59210] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:34:32.469 [reactor-http-nio-11] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [cf234238-9]- api end time:1695627272469, total time:4 +15:37:27.355 [reactor-http-nio-12] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [b82cca92-10]- api start time:1695627447355 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"4cwfSvJ8wmSPQRdhs9WJYA==", upgrade:"websocket"] +15:37:27.357 [reactor-http-nio-12] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [b82cca92-10]- [b82cca92-10] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:37:27.357 [reactor-http-nio-12] ERROR r.n.h.s.HttpServerOperations - [error,324] [b82cca92-10]- [b82cca92-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59249] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:37:27.359 [reactor-http-nio-12] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [b82cca92-10]- api end time:1695627447359, total time:4 +15:42:51.043 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +15:42:51.043 [Thread-36] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +15:42:51.043 [Thread-36] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +15:42:51.044 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +15:42:51.061 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +15:42:51.062 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +15:42:51.062 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +15:42:51.089 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +15:42:51.090 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +15:42:54.094 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,149] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown stop +15:42:54.095 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,413] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown begin +15:42:56.412 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,238] []- removed ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:42:56.415 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:42:56.417 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown begin +15:42:59.420 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,136] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown stop +15:42:59.420 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin +15:42:59.421 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,134] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop +15:42:59.421 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,418] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown stop +15:42:59.421 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,719] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown begin +15:42:59.421 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,72] []- [NamingHttpClientManager] Start destroying NacosRestTemplate +15:42:59.421 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,79] []- [NamingHttpClientManager] Destruction of the end +15:42:59.421 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialWatcher - [stop,105] []- [null] CredentialWatcher is stopped +15:42:59.422 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialService - [free,98] []- [null] CredentialService is freed +15:42:59.422 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,723] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown stop +15:43:09.570 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +15:43:10.286 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +15:43:10.294 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +15:43:10.295 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +15:43:10.308 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +15:43:10.764 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +15:43:10.765 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +15:43:10.770 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 2 ms. Found 0 R2DBC repository interfaces. +15:43:10.775 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +15:43:10.776 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +15:43:10.781 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +15:43:10.883 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=362e1134-2ebc-3f81-9328-e1dc2bef451d +15:43:11.006 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$5dab70de] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.015 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.015 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.015 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/1713847712] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.016 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.018 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.019 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.020 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.021 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.022 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$b84da0f0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.041 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.042 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$873a700c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.044 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$87c78f7a] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.051 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.052 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.084 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.086 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.099 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.121 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.127 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$2c35aae2] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.755 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +15:43:12.047 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +15:43:12.048 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +15:43:12.048 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +15:43:12.092 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +15:43:12.575 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +15:43:12.576 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +15:43:12.576 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +15:43:13.080 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +15:43:13.994 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:43:13.998 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:43:14.010 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +15:43:14.426 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +15:43:14.426 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +15:43:14.430 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +15:43:14.851 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.039 seconds (JVM running for 7.019) +15:43:14.855 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +15:43:14.856 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +15:43:14.856 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +15:43:14.857 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +15:43:14.857 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +15:43:14.857 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +15:43:14.857 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +15:43:14.857 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +15:43:14.857 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +15:43:15.003 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:43:15.005 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:10:55.545 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [a583024d-1]- api start time:1695633055545 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633055969", accept-encoding:"gzip", sec-websocket-key:"uECMH0pAxGJp+7wWucjD1g==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:10:55.594 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:10:55.605 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [a583024d-1]- api end time:1695633055605, total time:60 +17:11:12.236 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [4aad9948-2]- api start time:1695633072236 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633072760", accept-encoding:"gzip", sec-websocket-key:"2troqmC7qUOGnapfDFbqKw==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:11:12.238 [reactor-http-nio-3] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:11:12.239 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [4aad9948-2]- api end time:1695633072239, total time:3 +17:11:55.430 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:11:55.430 [reactor-http-nio-3] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:11:58.917 [reactor-http-nio-4] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [fa97a80e-3]- api start time:1695633118917 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633119414", accept-encoding:"gzip", sec-websocket-key:"sUAOwpwgIauLoFBLhqt0Lg==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:11:58.922 [reactor-http-nio-4] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:11:58.923 [reactor-http-nio-4] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [fa97a80e-3]- api end time:1695633118923, total time:6 +17:12:22.968 [reactor-http-nio-4] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:12:27.512 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [07adf94d-4]- api start time:1695633147511 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633148011", accept-encoding:"gzip", sec-websocket-key:"sw0cZ0e/+ysJU/BmJyNNjw==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:12:27.513 [reactor-http-nio-5] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:12:27.513 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [07adf94d-4]- api end time:1695633147513, total time:2 +17:14:40.318 [reactor-http-nio-5] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:14:44.549 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [53acf36c-5]- api start time:1695633284549 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633284960", accept-encoding:"gzip", sec-websocket-key:"xnCNSX4csb7ZGhBGy2Pqeg==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:14:44.552 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:14:44.554 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [53acf36c-5]- api end time:1695633284554, total time:5 +17:15:52.216 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:15:57.098 [reactor-http-nio-7] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [88e76af3-6]- api start time:1695633357098 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"RpZUzSeTEvqL9EdQZXZDjg==", upgrade:"websocket"] +17:15:57.104 [reactor-http-nio-7] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [88e76af3-6]- [88e76af3-6] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +17:15:57.107 [reactor-http-nio-7] ERROR r.n.h.s.HttpServerOperations - [error,324] [88e76af3-6]- [88e76af3-1, L:/192.168.8.175:8080 - R:/192.168.8.61:61210] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$cd6f87a2 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +17:15:57.108 [reactor-http-nio-7] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [88e76af3-6]- api end time:1695633357108, total time:10 +17:16:27.751 [reactor-http-nio-8] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [e0783a56-7]- api start time:1695633387751 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633388187", accept-encoding:"gzip", sec-websocket-key:"kkaUcxICA7TcrfHrxPbEKA==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:16:27.752 [reactor-http-nio-8] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:16:27.753 [reactor-http-nio-8] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [e0783a56-7]- api end time:1695633387753, total time:2 +17:17:20.409 [reactor-http-nio-9] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [451e0262-8]- api start time:1695633440409 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"+T5NnhFr5asu03MSA70Pew==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:17:20.412 [reactor-http-nio-9] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,97] []- 登录成功SN:QGBOX230919163545yS9 +17:17:20.413 [reactor-http-nio-9] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [451e0262-8]- api end time:1695633440413, total time:4 +17:21:21.433 [reactor-http-nio-10] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [65d2a6df-9]- api start time:1695633681432 ip:192.168.8.246 method:GET url:/websocket/customer param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"aB3XsPDqzrsFs0+tKC7ZKg==", Connection:"Upgrade", Upgrade:"websocket", time:"1695633119414", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", userid:"6205", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:21:21.434 [reactor-http-nio-10] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:21:21.435 [reactor-http-nio-10] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [65d2a6df-9]- api end time:1695633681435, total time:3 +17:22:19.326 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:22:19.326 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:22:19.327 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:22:19.327 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:22:22.346 [reactor-http-nio-10] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:22:22.347 [reactor-http-nio-8] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:22:22.347 [reactor-http-nio-9] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$5,120] []- 设备断开连接SN:QGBOX230919163545yS9 +17:22:22.352 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +17:22:22.352 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +17:22:22.352 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +17:22:22.356 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +17:22:22.357 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +17:22:25.359 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,149] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown stop +17:22:25.360 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,413] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown begin +17:22:28.363 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown begin +17:22:31.366 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,136] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown stop +17:22:31.366 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin +17:22:31.366 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,134] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop +17:22:31.367 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,418] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown stop +17:22:31.367 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,719] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown begin +17:22:31.367 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,72] []- [NamingHttpClientManager] Start destroying NacosRestTemplate +17:22:31.367 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,79] []- [NamingHttpClientManager] Destruction of the end +17:22:31.367 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialWatcher - [stop,105] []- [null] CredentialWatcher is stopped +17:22:31.367 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialService - [free,98] []- [null] CredentialService is freed +17:22:31.368 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,723] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown stop +17:22:44.561 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:22:45.345 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:22:45.353 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:22:45.354 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:22:45.370 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:22:45.926 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:22:45.927 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:22:45.934 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:22:45.942 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:22:45.943 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:22:45.948 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:22:46.130 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=362e1134-2ebc-3f81-9328-e1dc2bef451d +17:22:46.212 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$f3d8da3a] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.222 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.222 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.222 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/1707458318] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.223 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.225 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.226 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.227 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.228 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.229 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$4e7b0a4c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.251 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.252 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$1d67d968] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.254 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$1df4f8d6] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.262 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.264 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.304 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.306 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.322 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.349 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.355 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$c263143e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:47.081 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:22:47.106 [main] WARN o.s.b.w.r.c.AnnotationConfigReactiveWebServerApplicationContext - [refresh,591] []- Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'boxWebSocketHandler': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.qiuguo.iot.third.service.NlpService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)} +17:22:47.115 [single-1] ERROR r.c.p.Operators - [error,324] []- Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'connectionFactoryTransactionManager': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!) +Caused by: org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'connectionFactoryTransactionManager': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:220) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) + at org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils.qualifiedBeanOfType(BeanFactoryAnnotationUtils.java:129) + at org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils.qualifiedBeanOfType(BeanFactoryAnnotationUtils.java:95) + at org.springframework.transaction.interceptor.TransactionAspectSupport.determineQualifiedTransactionManager(TransactionAspectSupport.java:515) + at org.springframework.transaction.interceptor.TransactionAspectSupport.determineTransactionManager(TransactionAspectSupport.java:493) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:342) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) + at org.hswebframework.web.crud.sql.DefaultR2dbcExecutor$$EnhancerBySpringCGLIB$$8bec0948.select() + at org.hswebframework.ezorm.rdb.operator.dml.query.DefaultQueryResultOperator.lambda$reactive$2(DefaultQueryResultOperator.java:53) + at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:46) + at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54) + at reactor.core.publisher.Flux.subscribe(Flux.java:8642) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62) + at reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.run(FluxSubscribeOn.java:194) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) + at java.util.concurrent.FutureTask.run(FutureTask.java) + at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) + at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) + at java.lang.Thread.run(Thread.java:750) +17:22:47.116 [single-1] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了0条自定义回答指令 +17:22:47.132 [main] INFO o.s.b.a.l.ConditionEvaluationReportLoggingListener - [logMessage,136] []- + +Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. +17:22:47.158 [main] ERROR o.s.b.d.LoggingFailureAnalysisReporter - [report,40] []- + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +A component required a bean of type 'com.qiuguo.iot.third.service.NlpService' that could not be found. + + +Action: + +Consider defining a bean of type 'com.qiuguo.iot.third.service.NlpService' in your configuration. + +17:22:47.446 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:23:33.671 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:23:34.501 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:23:34.510 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:23:34.511 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:23:34.538 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:23:35.098 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:23:35.100 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:23:35.106 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:23:35.113 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:23:35.114 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:23:35.121 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:23:35.301 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=a0298bed-f54b-3b57-8e34-33ee5cfc4c2d +17:23:35.382 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$5697e073] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.392 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.393 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.393 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/1144673247] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.394 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.396 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.396 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.398 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.399 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.400 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$b13a1085] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.420 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.421 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$8026dfa1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.424 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$80b3ff0f] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.431 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.433 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.475 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.477 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.496 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.526 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.532 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$25221a77] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:36.251 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:23:36.607 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +17:23:36.607 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +17:23:36.608 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +17:23:36.656 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +17:23:37.148 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +17:23:37.149 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +17:23:37.150 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +17:23:37.669 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +17:23:38.646 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:23:38.650 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:23:38.663 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +17:23:39.086 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:23:39.086 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +17:23:39.090 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +17:23:39.532 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.653 seconds (JVM running for 7.665) +17:23:39.537 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +17:23:39.538 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +17:23:39.538 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +17:23:39.538 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +17:23:39.539 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +17:23:39.539 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +17:23:39.539 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +17:23:39.539 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +17:23:39.539 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +17:23:39.657 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:23:39.659 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:24:01.583 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [2cc6726b-1]- api start time:1695633841583 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633841962", accept-encoding:"gzip", sec-websocket-key:"l+bDRBlMYEHP37BEVxgo8g==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:24:15.631 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [69a90aed-2]- api start time:1695633855631 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633846359", accept-encoding:"gzip", sec-websocket-key:"YNm7ZlPSo6oV5btCS8OwHg==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:24:19.990 [reactor-http-nio-3] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,69] []- 用户成功userId:6205 +17:24:19.990 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,69] []- 用户成功userId:6205 +17:24:20.000 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [2cc6726b-1]- api end time:1695633860000, total time:18417 +17:24:20.001 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [69a90aed-2]- api end time:1695633860000, total time:4369 +17:25:21.971 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [86cabd7e-3]- api start time:1695633921970 ip:192.168.8.246 method:GET url:/websocket/push/message param:{type=[1], id=[6205], message=[明天是个好日子,加油!]} headers:[Host:"192.168.8.175:8080", Connection:"keep-alive", Upgrade-Insecure-Requests:"1", User-Agent:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.35", Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", Accept-Encoding:"gzip, deflate", Accept-Language:"zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"] +17:25:22.048 [reactor-http-nio-5] DEBUG o.h.w.c.w.ResponseMessageWrapper - [selectMediaType,161] [86cabd7e-3]- [86cabd7e-3] Using 'application/json' given [text/html, application/xhtml+xml, image/webp, image/apng, application/xml;q=0.9, application/signed-exchange;v=b3;q=0.7, */*;q=0.8] and supported [application/json, application/*+json, application/x-ndjson, text/event-stream] +17:25:22.049 [reactor-http-nio-5] DEBUG o.h.w.c.w.ResponseMessageWrapper - [writeBody,174] [86cabd7e-3]- [86cabd7e-3] 0..1 [org.hswebframework.web.crud.web.ResponseMessage] +17:25:22.053 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$writeWith$1,108] [86cabd7e-3]- response:{"message":"success","result":"推送成功","status":200,"timestamp":1695633922050} +17:25:22.056 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [86cabd7e-3]- api end time:1695633922056, total time:86 +17:28:59.230 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [c19ff121-4]- api start time:1695634139230 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"IBrtoLkJ1NLSD4TaK/lGAw==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:28:59.233 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,69] []- 登录成功SN:QGBOX230919163545yS9 +17:28:59.234 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [c19ff121-4]- api end time:1695634139234, total time:4 +17:29:05.865 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:29:05.887 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,84] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:29:28.642 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:29:28.642 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,84] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:29:47.553 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:29:47.553 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:29:47.553 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:29:47.554 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:29:50.562 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,92] []- 用户断开连接SN:6205 +17:29:50.562 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$4,101] []- 设备断开连接SN:QGBOX230919163545yS9 +17:29:50.562 [reactor-http-nio-3] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,92] []- 用户断开连接SN:6205 +17:29:50.564 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +17:29:50.564 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +17:29:50.564 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +17:29:50.567 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +17:29:50.568 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +17:29:53.572 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,149] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown stop +17:29:53.573 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,413] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown begin +17:29:54.450 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,238] []- removed ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:29:54.452 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:29:54.453 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown begin +17:29:57.456 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,136] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown stop +17:29:57.456 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin +17:29:57.456 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,134] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop +17:29:57.457 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,418] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown stop +17:29:57.457 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,719] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown begin +17:29:57.457 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,72] []- [NamingHttpClientManager] Start destroying NacosRestTemplate +17:29:57.457 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,79] []- [NamingHttpClientManager] Destruction of the end +17:29:57.458 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialWatcher - [stop,105] []- [null] CredentialWatcher is stopped +17:29:57.458 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialService - [free,98] []- [null] CredentialService is freed +17:29:57.458 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,723] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown stop +17:30:06.065 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:30:06.845 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:30:06.853 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:30:06.853 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:30:06.868 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:30:07.419 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:30:07.421 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:30:07.427 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:30:07.435 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:30:07.436 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:30:07.441 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:30:07.613 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=a0298bed-f54b-3b57-8e34-33ee5cfc4c2d +17:30:07.700 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$2d6c7930] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.709 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.710 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.710 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/194318210] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.711 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.713 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.714 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.715 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.716 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.717 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$880ea942] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.740 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.741 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$56fb785e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.744 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$578897cc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.751 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.753 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.797 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.798 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.816 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.842 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.849 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$fbf6b334] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:08.554 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:30:08.906 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +17:30:08.906 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +17:30:08.907 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +17:30:08.954 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +17:30:09.471 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +17:30:09.472 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +17:30:09.473 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +17:30:09.986 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +17:30:10.996 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:30:11.001 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:30:11.014 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +17:30:11.423 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:30:11.424 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +17:30:11.430 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +17:30:11.841 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.555 seconds (JVM running for 7.566) +17:30:11.845 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +17:30:11.846 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +17:30:11.847 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +17:30:11.847 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +17:30:11.847 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +17:30:11.847 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +17:30:11.847 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +17:30:11.848 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +17:30:11.848 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +17:30:12.005 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:30:12.006 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:30:25.972 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [a0a91f50-1]- api start time:1695634225972 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"9rrMq5+usZDvq9Z1DzKmWg==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:30:26.001 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,69] []- 登录成功SN:QGBOX230919163545yS9 +17:30:26.010 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [a0a91f50-1]- api end time:1695634226010, total time:38 +17:30:28.248 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:30:28.303 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,84] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:30:28.402 [reactor-http-nio-2] ERROR r.c.p.Operators - [error,324] []- Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 +Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 + at java.util.ArrayList.rangeCheck(ArrayList.java:659) + at java.util.ArrayList.get(ArrayList.java:435) + at com.qiuguo.iot.box.websocket.api.handler.BoxWebSocketHandler.lambda$null$0(BoxWebSocketHandler.java:78) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) + at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onSubscribe(MonoFlatMap.java:238) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:160) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) + at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:413) + at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:424) + at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:478) + at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:712) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +17:30:45.578 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:30:45.580 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,84] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:31:06.433 [reactor-http-nio-2] ERROR r.c.p.Operators - [error,324] []- Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 +Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 + at java.util.ArrayList.rangeCheck(ArrayList.java:659) + at java.util.ArrayList.get(ArrayList.java:435) + at com.qiuguo.iot.box.websocket.api.handler.BoxWebSocketHandler.lambda$null$0(BoxWebSocketHandler.java:78) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) + at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onSubscribe(MonoFlatMap.java:238) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:160) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) + at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:413) + at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:424) + at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:478) + at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:712) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +17:31:06.443 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:31:06.443 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:31:06.444 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:31:16.450 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:31:16.450 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:31:16.453 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:18.881 [Thread-38] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:33:18.881 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:33:18.881 [Thread-38] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:33:18.882 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:33:21.891 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$4,101] []- 设备断开连接SN:QGBOX230919163545yS9 +17:33:21.892 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +17:33:21.893 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +17:33:21.893 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +17:33:21.897 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +17:33:21.898 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +17:33:24.903 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,149] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown stop +17:33:24.905 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,413] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown begin +17:33:26.540 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,238] []- removed ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:26.542 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:26.543 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown begin +17:33:29.546 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,136] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown stop +17:33:29.546 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin +17:33:29.546 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,134] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop +17:33:29.547 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,418] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown stop +17:33:29.547 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,719] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown begin +17:33:29.547 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,72] []- [NamingHttpClientManager] Start destroying NacosRestTemplate +17:33:29.547 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,79] []- [NamingHttpClientManager] Destruction of the end +17:33:29.547 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialWatcher - [stop,105] []- [null] CredentialWatcher is stopped +17:33:29.548 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialService - [free,98] []- [null] CredentialService is freed +17:33:29.548 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,723] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown stop +17:33:38.411 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:33:39.221 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:33:39.233 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:33:39.234 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:33:39.252 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:33:39.843 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:33:39.845 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:33:39.852 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:33:39.860 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:33:39.861 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:33:39.869 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:33:40.003 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=a0298bed-f54b-3b57-8e34-33ee5cfc4c2d +17:33:40.171 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$dead0f04] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.182 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.183 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.183 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/59930654] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.184 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.186 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.187 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.188 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.189 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.190 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$394f3f16] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.212 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.213 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$83c0e32] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.215 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$8c92da0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.223 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.225 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.267 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.269 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.285 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.314 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.320 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$ad374908] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:41.027 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:33:41.363 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +17:33:41.363 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +17:33:41.364 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +17:33:41.411 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +17:33:41.906 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +17:33:41.907 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +17:33:41.908 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +17:33:42.442 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +17:33:43.505 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:43.510 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:43.524 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +17:33:43.946 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:33:43.947 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +17:33:43.951 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +17:33:44.380 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.774 seconds (JVM running for 7.806) +17:33:44.385 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +17:33:44.386 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +17:33:44.386 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +17:33:44.387 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +17:33:44.387 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +17:33:44.387 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +17:33:44.387 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +17:33:44.388 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +17:33:44.388 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +17:33:44.515 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:44.516 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:48.977 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [279820e9-1]- api start time:1695634428976 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"gZoZ97PTfC9ToeKBkBGNXg==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:33:49.009 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,69] []- 登录成功SN:QGBOX230919163545yS9 +17:33:49.019 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [279820e9-1]- api end time:1695634429019, total time:43 +17:33:51.787 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:33:51.835 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,92] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:34:04.673 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$0,83] []- 未匹配到自定义命令,调用千问 +17:34:06.633 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$1,89] []- 未匹配到自定义命令,调用千问 +17:34:06.634 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:34:06.634 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:34:06.635 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:34:16.645 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:34:16.645 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:34:16.648 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:34:34.630 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:34:58.881 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,92] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:34:58.887 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:35:54.837 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:35:55.751 [com.alibaba.nacos.naming.beat.sender] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', metadata={preserved.register.source=SPRING_CLOUD}} +17:35:55.753 [com.alibaba.nacos.naming.beat.sender] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', metadata={preserved.register.source=SPRING_CLOUD}} +17:36:01.074 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:36:33.401 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$0,83] []- 未匹配到自定义命令,调用千问 +17:36:33.402 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$1,89] []- 未匹配到自定义命令,调用千问 +17:36:33.423 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:36:33.423 [Thread-38] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:36:33.423 [Thread-38] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:36:33.423 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:38:33.453 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:38:34.289 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:38:34.305 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:38:34.305 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:38:34.321 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:38:34.879 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:38:34.881 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:38:34.888 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:38:34.894 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:38:34.895 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:38:34.901 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:38:35.074 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=a0298bed-f54b-3b57-8e34-33ee5cfc4c2d +17:38:35.155 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$2d6c7930] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.164 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.165 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.165 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/194318210] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.166 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.168 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.169 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.170 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.171 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.172 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$880ea942] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.193 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.193 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$56fb785e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.196 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$578897cc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.203 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.205 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.246 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.247 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.263 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.290 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.296 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$fbf6b334] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:36.015 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:38:36.378 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +17:38:36.378 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +17:38:36.379 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +17:38:36.425 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +17:38:36.971 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +17:38:36.971 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +17:38:36.972 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +17:38:37.508 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +17:38:38.518 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:38:38.521 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:38:38.536 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +17:38:38.961 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:38:38.962 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +17:38:38.966 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +17:38:39.419 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.791 seconds (JVM running for 7.8) +17:38:39.423 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +17:38:39.424 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +17:38:39.424 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +17:38:39.425 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +17:38:39.425 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +17:38:39.425 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +17:38:39.426 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +17:38:39.426 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +17:38:39.426 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +17:38:39.527 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:38:39.529 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:38:47.937 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [fc06728f-1]- api start time:1695634727937 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"RNV8SoN6lsGBwgOXWrdScQ==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:38:47.969 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,69] []- 登录成功SN:QGBOX230919163545yS9 +17:38:47.978 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [fc06728f-1]- api end time:1695634727978, total time:41 +17:38:50.214 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯和风扇"} +17:38:54.933 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,92] []- 收到SN:QGBOX230919163545yS9,消息打开灯和风扇 +17:39:19.098 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:39:19.094 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$0,83] []- 未匹配到自定义命令,调用千问 +17:39:19.098 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:39:19.099 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$1,89] []- 未匹配到自定义命令,调用千问 +17:39:19.100 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:39:19.114 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:39:19.114 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:39:19.114 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:39:19.115 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:39:22.123 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$4,109] []- 设备断开连接SN:QGBOX230919163545yS9 +17:39:22.125 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +17:39:22.125 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +17:39:22.125 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +17:39:22.129 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +17:39:22.129 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +17:41:07.288 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:41:08.086 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:41:08.099 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:41:08.100 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] diff --git a/logs/iot-box-websocket-api/info.log b/logs/iot-box-websocket-api/info.log index 5842e64..78eb6ab 100644 --- a/logs/iot-box-websocket-api/info.log +++ b/logs/iot-box-websocket-api/info.log @@ -57,3 +57,2183 @@ 09:18:10.484 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP 09:18:20.515 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] 09:18:20.516 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +14:45:45.581 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [3e40e613-1]- api start time:1695624345581 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"VwYz/pkoM4NyjLK+IuQdZg==", upgrade:"websocket"] +14:45:45.613 [reactor-http-nio-2] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [3e40e613-1]- [3e40e613-1] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +14:45:45.615 [reactor-http-nio-2] ERROR r.n.h.s.HttpServerOperations - [error,324] [3e40e613-1]- [3e40e613-1, L:/192.168.8.175:8080 - R:/192.168.8.61:58287] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +14:45:45.617 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [3e40e613-1]- api end time:1695624345616, total time:35 +14:54:04.699 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [f2bf8af4-2]- api start time:1695624844699 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"24I3BEmIznXfkSO5U7qBMQ==", upgrade:"websocket"] +14:54:04.701 [reactor-http-nio-3] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [f2bf8af4-2]- [f2bf8af4-2] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +14:54:04.701 [reactor-http-nio-3] ERROR r.n.h.s.HttpServerOperations - [error,324] [f2bf8af4-2]- [f2bf8af4-1, L:/192.168.8.175:8080 - R:/192.168.8.61:58320] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +14:54:04.702 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [f2bf8af4-2]- api end time:1695624844702, total time:3 +14:57:58.818 [reactor-http-nio-4] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [1aea5dbb-3]- api start time:1695625078818 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"TjSnblkBBAm6gdo+ZwxxMA==", upgrade:"websocket"] +14:57:58.820 [reactor-http-nio-4] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [1aea5dbb-3]- [1aea5dbb-3] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +14:57:58.820 [reactor-http-nio-4] ERROR r.n.h.s.HttpServerOperations - [error,324] [1aea5dbb-3]- [1aea5dbb-1, L:/192.168.8.175:8080 - R:/192.168.8.61:58348] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +14:57:58.821 [reactor-http-nio-4] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [1aea5dbb-3]- api end time:1695625078821, total time:3 +14:58:24.754 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [2632921b-4]- api start time:1695625104754 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"H6dOOV8YFqYQj+1WvuubOw==", upgrade:"websocket"] +14:58:24.756 [reactor-http-nio-5] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [2632921b-4]- [2632921b-4] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +14:58:24.756 [reactor-http-nio-5] ERROR r.n.h.s.HttpServerOperations - [error,324] [2632921b-4]- [2632921b-1, L:/192.168.8.175:8080 - R:/192.168.8.61:58378] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +14:58:24.757 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [2632921b-4]- api end time:1695625104757, total time:3 +15:02:27.082 [com.alibaba.nacos.naming.beat.sender] ERROR c.a.n.client.naming - [callServer,617] []- [NA] failed to request +java.net.SocketTimeoutException: connect timed out + at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) + at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81) + at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476) + at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218) + at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200) + at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162) + at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) + at java.net.Socket.connect(Socket.java:606) + at sun.net.NetworkClient.doConnect(NetworkClient.java:175) + at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) + at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) + at sun.net.www.http.HttpClient.(HttpClient.java:242) + at sun.net.www.http.HttpClient.New(HttpClient.java:339) + at sun.net.www.http.HttpClient.New(HttpClient.java:357) + at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1240) + at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1167) + at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1061) + at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:995) + at com.alibaba.nacos.common.http.client.request.JdkHttpClientRequest.execute(JdkHttpClientRequest.java:112) + at com.alibaba.nacos.common.http.client.NacosRestTemplate.execute(NacosRestTemplate.java:482) + at com.alibaba.nacos.common.http.client.NacosRestTemplate.exchangeForm(NacosRestTemplate.java:427) + at com.alibaba.nacos.client.naming.net.NamingProxy.callServer(NamingProxy.java:603) + at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:526) + at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:498) + at com.alibaba.nacos.client.naming.net.NamingProxy.sendBeat(NamingProxy.java:433) + at com.alibaba.nacos.client.naming.beat.BeatReactor$BeatTask.run(BeatReactor.java:167) + at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) + at java.util.concurrent.FutureTask.run(FutureTask.java:266) + at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) + at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) + at java.lang.Thread.run(Thread.java:750) +15:18:23.502 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [ab3c8841-5]- api start time:1695626303502 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"07MTfc3t2d0WM04AXA5+NA==", upgrade:"websocket"] +15:18:23.505 [reactor-http-nio-6] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [ab3c8841-5]- [ab3c8841-5] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:18:23.505 [reactor-http-nio-6] ERROR r.n.h.s.HttpServerOperations - [error,324] [ab3c8841-5]- [ab3c8841-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59092] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:18:23.506 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [ab3c8841-5]- api end time:1695626303506, total time:4 +15:29:49.216 [reactor-http-nio-8] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [59cd57ca-6]- api start time:1695626989216 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"+mtAHsqRX7b7mteGWRm91A==", upgrade:"websocket"] +15:29:49.220 [reactor-http-nio-8] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [59cd57ca-6]- [59cd57ca-6] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:29:49.221 [reactor-http-nio-8] ERROR r.n.h.s.HttpServerOperations - [error,324] [59cd57ca-6]- [59cd57ca-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59124] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:29:49.222 [reactor-http-nio-8] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [59cd57ca-6]- api end time:1695626989222, total time:6 +15:30:50.724 [reactor-http-nio-9] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [e651358e-7]- api start time:1695627050724 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"jZh/fma8dn66OjTg3Wc/3A==", upgrade:"websocket"] +15:30:50.727 [reactor-http-nio-9] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [e651358e-7]- [e651358e-7] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:30:50.727 [reactor-http-nio-9] ERROR r.n.h.s.HttpServerOperations - [error,324] [e651358e-7]- [e651358e-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59153] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:30:50.728 [reactor-http-nio-9] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [e651358e-7]- api end time:1695627050728, total time:4 +15:31:47.207 [reactor-http-nio-10] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [98f2001f-8]- api start time:1695627107207 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"YAKptr05aHqEK0oYEw9pgg==", upgrade:"websocket"] +15:31:47.209 [reactor-http-nio-10] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [98f2001f-8]- [98f2001f-8] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:31:47.209 [reactor-http-nio-10] ERROR r.n.h.s.HttpServerOperations - [error,324] [98f2001f-8]- [98f2001f-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59182] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:31:47.211 [reactor-http-nio-10] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [98f2001f-8]- api end time:1695627107211, total time:4 +15:34:32.465 [reactor-http-nio-11] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [cf234238-9]- api start time:1695627272465 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"itfi9xskaP2KRwWfCqKDgg==", upgrade:"websocket"] +15:34:32.467 [reactor-http-nio-11] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [cf234238-9]- [cf234238-9] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:34:32.468 [reactor-http-nio-11] ERROR r.n.h.s.HttpServerOperations - [error,324] [cf234238-9]- [cf234238-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59210] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:34:32.469 [reactor-http-nio-11] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [cf234238-9]- api end time:1695627272469, total time:4 +15:37:27.355 [reactor-http-nio-12] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [b82cca92-10]- api start time:1695627447355 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"4cwfSvJ8wmSPQRdhs9WJYA==", upgrade:"websocket"] +15:37:27.357 [reactor-http-nio-12] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [b82cca92-10]- [b82cca92-10] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:37:27.357 [reactor-http-nio-12] ERROR r.n.h.s.HttpServerOperations - [error,324] [b82cca92-10]- [b82cca92-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59249] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:37:27.359 [reactor-http-nio-12] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [b82cca92-10]- api end time:1695627447359, total time:4 +15:42:51.043 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +15:42:51.043 [Thread-36] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +15:42:51.043 [Thread-36] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +15:42:51.044 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +15:42:51.061 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +15:42:51.062 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +15:42:51.062 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +15:42:51.089 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +15:42:51.090 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +15:42:54.094 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,149] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown stop +15:42:54.095 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,413] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown begin +15:42:56.412 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,238] []- removed ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:42:56.415 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:42:56.417 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown begin +15:42:59.420 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,136] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown stop +15:42:59.420 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin +15:42:59.421 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,134] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop +15:42:59.421 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,418] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown stop +15:42:59.421 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,719] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown begin +15:42:59.421 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,72] []- [NamingHttpClientManager] Start destroying NacosRestTemplate +15:42:59.421 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,79] []- [NamingHttpClientManager] Destruction of the end +15:42:59.421 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialWatcher - [stop,105] []- [null] CredentialWatcher is stopped +15:42:59.422 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialService - [free,98] []- [null] CredentialService is freed +15:42:59.422 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,723] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown stop +15:43:09.570 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +15:43:10.286 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +15:43:10.294 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +15:43:10.295 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +15:43:10.308 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +15:43:10.764 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +15:43:10.765 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +15:43:10.770 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 2 ms. Found 0 R2DBC repository interfaces. +15:43:10.775 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +15:43:10.776 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +15:43:10.781 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +15:43:10.883 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=362e1134-2ebc-3f81-9328-e1dc2bef451d +15:43:11.006 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$5dab70de] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.015 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.015 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.015 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/1713847712] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.016 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.018 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.019 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.020 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.021 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.022 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$b84da0f0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.041 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.042 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$873a700c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.044 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$87c78f7a] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.051 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.052 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.084 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.086 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.099 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.121 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.127 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$2c35aae2] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.755 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +15:43:12.047 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +15:43:12.048 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +15:43:12.048 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +15:43:12.092 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +15:43:12.575 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +15:43:12.576 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +15:43:12.576 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +15:43:13.080 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +15:43:13.994 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:43:13.998 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:43:14.010 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +15:43:14.426 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +15:43:14.426 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +15:43:14.430 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +15:43:14.851 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.039 seconds (JVM running for 7.019) +15:43:14.855 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +15:43:14.856 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +15:43:14.856 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +15:43:14.857 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +15:43:14.857 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +15:43:14.857 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +15:43:14.857 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +15:43:14.857 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +15:43:14.857 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +15:43:15.003 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:43:15.005 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:10:55.545 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [a583024d-1]- api start time:1695633055545 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633055969", accept-encoding:"gzip", sec-websocket-key:"uECMH0pAxGJp+7wWucjD1g==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:10:55.594 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:10:55.605 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [a583024d-1]- api end time:1695633055605, total time:60 +17:11:12.236 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [4aad9948-2]- api start time:1695633072236 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633072760", accept-encoding:"gzip", sec-websocket-key:"2troqmC7qUOGnapfDFbqKw==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:11:12.238 [reactor-http-nio-3] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:11:12.239 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [4aad9948-2]- api end time:1695633072239, total time:3 +17:11:55.430 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:11:55.430 [reactor-http-nio-3] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:11:58.917 [reactor-http-nio-4] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [fa97a80e-3]- api start time:1695633118917 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633119414", accept-encoding:"gzip", sec-websocket-key:"sUAOwpwgIauLoFBLhqt0Lg==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:11:58.922 [reactor-http-nio-4] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:11:58.923 [reactor-http-nio-4] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [fa97a80e-3]- api end time:1695633118923, total time:6 +17:12:22.968 [reactor-http-nio-4] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:12:27.512 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [07adf94d-4]- api start time:1695633147511 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633148011", accept-encoding:"gzip", sec-websocket-key:"sw0cZ0e/+ysJU/BmJyNNjw==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:12:27.513 [reactor-http-nio-5] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:12:27.513 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [07adf94d-4]- api end time:1695633147513, total time:2 +17:14:40.318 [reactor-http-nio-5] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:14:44.549 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [53acf36c-5]- api start time:1695633284549 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633284960", accept-encoding:"gzip", sec-websocket-key:"xnCNSX4csb7ZGhBGy2Pqeg==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:14:44.552 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:14:44.554 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [53acf36c-5]- api end time:1695633284554, total time:5 +17:15:52.216 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:15:57.098 [reactor-http-nio-7] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [88e76af3-6]- api start time:1695633357098 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"RpZUzSeTEvqL9EdQZXZDjg==", upgrade:"websocket"] +17:15:57.104 [reactor-http-nio-7] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [88e76af3-6]- [88e76af3-6] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +17:15:57.107 [reactor-http-nio-7] ERROR r.n.h.s.HttpServerOperations - [error,324] [88e76af3-6]- [88e76af3-1, L:/192.168.8.175:8080 - R:/192.168.8.61:61210] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$cd6f87a2 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +17:15:57.108 [reactor-http-nio-7] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [88e76af3-6]- api end time:1695633357108, total time:10 +17:16:27.751 [reactor-http-nio-8] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [e0783a56-7]- api start time:1695633387751 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633388187", accept-encoding:"gzip", sec-websocket-key:"kkaUcxICA7TcrfHrxPbEKA==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:16:27.752 [reactor-http-nio-8] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:16:27.753 [reactor-http-nio-8] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [e0783a56-7]- api end time:1695633387753, total time:2 +17:17:20.409 [reactor-http-nio-9] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [451e0262-8]- api start time:1695633440409 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"+T5NnhFr5asu03MSA70Pew==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:17:20.412 [reactor-http-nio-9] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,97] []- 登录成功SN:QGBOX230919163545yS9 +17:17:20.413 [reactor-http-nio-9] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [451e0262-8]- api end time:1695633440413, total time:4 +17:21:21.433 [reactor-http-nio-10] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [65d2a6df-9]- api start time:1695633681432 ip:192.168.8.246 method:GET url:/websocket/customer param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"aB3XsPDqzrsFs0+tKC7ZKg==", Connection:"Upgrade", Upgrade:"websocket", time:"1695633119414", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", userid:"6205", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:21:21.434 [reactor-http-nio-10] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:21:21.435 [reactor-http-nio-10] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [65d2a6df-9]- api end time:1695633681435, total time:3 +17:22:19.326 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:22:19.326 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:22:19.327 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:22:19.327 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:22:22.346 [reactor-http-nio-10] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:22:22.347 [reactor-http-nio-8] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:22:22.347 [reactor-http-nio-9] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$5,120] []- 设备断开连接SN:QGBOX230919163545yS9 +17:22:22.352 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +17:22:22.352 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +17:22:22.352 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +17:22:22.356 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +17:22:22.357 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +17:22:25.359 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,149] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown stop +17:22:25.360 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,413] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown begin +17:22:28.363 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown begin +17:22:31.366 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,136] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown stop +17:22:31.366 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin +17:22:31.366 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,134] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop +17:22:31.367 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,418] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown stop +17:22:31.367 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,719] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown begin +17:22:31.367 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,72] []- [NamingHttpClientManager] Start destroying NacosRestTemplate +17:22:31.367 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,79] []- [NamingHttpClientManager] Destruction of the end +17:22:31.367 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialWatcher - [stop,105] []- [null] CredentialWatcher is stopped +17:22:31.367 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialService - [free,98] []- [null] CredentialService is freed +17:22:31.368 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,723] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown stop +17:22:44.561 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:22:45.345 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:22:45.353 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:22:45.354 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:22:45.370 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:22:45.926 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:22:45.927 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:22:45.934 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:22:45.942 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:22:45.943 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:22:45.948 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:22:46.130 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=362e1134-2ebc-3f81-9328-e1dc2bef451d +17:22:46.212 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$f3d8da3a] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.222 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.222 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.222 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/1707458318] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.223 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.225 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.226 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.227 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.228 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.229 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$4e7b0a4c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.251 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.252 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$1d67d968] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.254 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$1df4f8d6] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.262 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.264 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.304 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.306 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.322 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.349 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.355 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$c263143e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:47.081 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:22:47.106 [main] WARN o.s.b.w.r.c.AnnotationConfigReactiveWebServerApplicationContext - [refresh,591] []- Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'boxWebSocketHandler': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.qiuguo.iot.third.service.NlpService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)} +17:22:47.115 [single-1] ERROR r.c.p.Operators - [error,324] []- Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'connectionFactoryTransactionManager': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!) +Caused by: org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'connectionFactoryTransactionManager': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:220) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) + at org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils.qualifiedBeanOfType(BeanFactoryAnnotationUtils.java:129) + at org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils.qualifiedBeanOfType(BeanFactoryAnnotationUtils.java:95) + at org.springframework.transaction.interceptor.TransactionAspectSupport.determineQualifiedTransactionManager(TransactionAspectSupport.java:515) + at org.springframework.transaction.interceptor.TransactionAspectSupport.determineTransactionManager(TransactionAspectSupport.java:493) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:342) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) + at org.hswebframework.web.crud.sql.DefaultR2dbcExecutor$$EnhancerBySpringCGLIB$$8bec0948.select() + at org.hswebframework.ezorm.rdb.operator.dml.query.DefaultQueryResultOperator.lambda$reactive$2(DefaultQueryResultOperator.java:53) + at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:46) + at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54) + at reactor.core.publisher.Flux.subscribe(Flux.java:8642) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62) + at reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.run(FluxSubscribeOn.java:194) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) + at java.util.concurrent.FutureTask.run(FutureTask.java) + at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) + at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) + at java.lang.Thread.run(Thread.java:750) +17:22:47.116 [single-1] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了0条自定义回答指令 +17:22:47.132 [main] INFO o.s.b.a.l.ConditionEvaluationReportLoggingListener - [logMessage,136] []- + +Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. +17:22:47.158 [main] ERROR o.s.b.d.LoggingFailureAnalysisReporter - [report,40] []- + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +A component required a bean of type 'com.qiuguo.iot.third.service.NlpService' that could not be found. + + +Action: + +Consider defining a bean of type 'com.qiuguo.iot.third.service.NlpService' in your configuration. + +17:22:47.446 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:23:33.671 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:23:34.501 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:23:34.510 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:23:34.511 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:23:34.538 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:23:35.098 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:23:35.100 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:23:35.106 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:23:35.113 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:23:35.114 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:23:35.121 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:23:35.301 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=a0298bed-f54b-3b57-8e34-33ee5cfc4c2d +17:23:35.382 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$5697e073] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.392 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.393 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.393 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/1144673247] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.394 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.396 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.396 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.398 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.399 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.400 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$b13a1085] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.420 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.421 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$8026dfa1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.424 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$80b3ff0f] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.431 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.433 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.475 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.477 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.496 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.526 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.532 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$25221a77] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:36.251 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:23:36.607 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +17:23:36.607 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +17:23:36.608 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +17:23:36.656 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +17:23:37.148 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +17:23:37.149 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +17:23:37.150 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +17:23:37.669 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +17:23:38.646 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:23:38.650 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:23:38.663 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +17:23:39.086 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:23:39.086 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +17:23:39.090 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +17:23:39.532 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.653 seconds (JVM running for 7.665) +17:23:39.537 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +17:23:39.538 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +17:23:39.538 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +17:23:39.538 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +17:23:39.539 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +17:23:39.539 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +17:23:39.539 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +17:23:39.539 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +17:23:39.539 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +17:23:39.657 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:23:39.659 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:24:01.583 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [2cc6726b-1]- api start time:1695633841583 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633841962", accept-encoding:"gzip", sec-websocket-key:"l+bDRBlMYEHP37BEVxgo8g==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:24:15.631 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [69a90aed-2]- api start time:1695633855631 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633846359", accept-encoding:"gzip", sec-websocket-key:"YNm7ZlPSo6oV5btCS8OwHg==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:24:19.990 [reactor-http-nio-3] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,69] []- 用户成功userId:6205 +17:24:19.990 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,69] []- 用户成功userId:6205 +17:24:20.000 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [2cc6726b-1]- api end time:1695633860000, total time:18417 +17:24:20.001 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [69a90aed-2]- api end time:1695633860000, total time:4369 +17:25:21.971 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [86cabd7e-3]- api start time:1695633921970 ip:192.168.8.246 method:GET url:/websocket/push/message param:{type=[1], id=[6205], message=[明天是个好日子,加油!]} headers:[Host:"192.168.8.175:8080", Connection:"keep-alive", Upgrade-Insecure-Requests:"1", User-Agent:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.35", Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", Accept-Encoding:"gzip, deflate", Accept-Language:"zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"] +17:25:22.048 [reactor-http-nio-5] DEBUG o.h.w.c.w.ResponseMessageWrapper - [selectMediaType,161] [86cabd7e-3]- [86cabd7e-3] Using 'application/json' given [text/html, application/xhtml+xml, image/webp, image/apng, application/xml;q=0.9, application/signed-exchange;v=b3;q=0.7, */*;q=0.8] and supported [application/json, application/*+json, application/x-ndjson, text/event-stream] +17:25:22.049 [reactor-http-nio-5] DEBUG o.h.w.c.w.ResponseMessageWrapper - [writeBody,174] [86cabd7e-3]- [86cabd7e-3] 0..1 [org.hswebframework.web.crud.web.ResponseMessage] +17:25:22.053 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$writeWith$1,108] [86cabd7e-3]- response:{"message":"success","result":"推送成功","status":200,"timestamp":1695633922050} +17:25:22.056 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [86cabd7e-3]- api end time:1695633922056, total time:86 +17:28:59.230 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [c19ff121-4]- api start time:1695634139230 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"IBrtoLkJ1NLSD4TaK/lGAw==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:28:59.233 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,69] []- 登录成功SN:QGBOX230919163545yS9 +17:28:59.234 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [c19ff121-4]- api end time:1695634139234, total time:4 +17:29:05.865 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:29:05.887 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,84] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:29:28.642 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:29:28.642 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,84] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:29:47.553 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:29:47.553 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:29:47.553 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:29:47.554 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:29:50.562 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,92] []- 用户断开连接SN:6205 +17:29:50.562 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$4,101] []- 设备断开连接SN:QGBOX230919163545yS9 +17:29:50.562 [reactor-http-nio-3] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,92] []- 用户断开连接SN:6205 +17:29:50.564 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +17:29:50.564 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +17:29:50.564 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +17:29:50.567 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +17:29:50.568 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +17:29:53.572 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,149] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown stop +17:29:53.573 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,413] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown begin +17:29:54.450 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,238] []- removed ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:29:54.452 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:29:54.453 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown begin +17:29:57.456 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,136] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown stop +17:29:57.456 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin +17:29:57.456 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,134] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop +17:29:57.457 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,418] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown stop +17:29:57.457 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,719] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown begin +17:29:57.457 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,72] []- [NamingHttpClientManager] Start destroying NacosRestTemplate +17:29:57.457 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,79] []- [NamingHttpClientManager] Destruction of the end +17:29:57.458 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialWatcher - [stop,105] []- [null] CredentialWatcher is stopped +17:29:57.458 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialService - [free,98] []- [null] CredentialService is freed +17:29:57.458 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,723] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown stop +17:30:06.065 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:30:06.845 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:30:06.853 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:30:06.853 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:30:06.868 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:30:07.419 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:30:07.421 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:30:07.427 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:30:07.435 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:30:07.436 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:30:07.441 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:30:07.613 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=a0298bed-f54b-3b57-8e34-33ee5cfc4c2d +17:30:07.700 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$2d6c7930] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.709 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.710 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.710 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/194318210] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.711 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.713 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.714 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.715 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.716 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.717 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$880ea942] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.740 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.741 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$56fb785e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.744 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$578897cc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.751 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.753 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.797 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.798 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.816 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.842 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.849 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$fbf6b334] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:08.554 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:30:08.906 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +17:30:08.906 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +17:30:08.907 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +17:30:08.954 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +17:30:09.471 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +17:30:09.472 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +17:30:09.473 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +17:30:09.986 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +17:30:10.996 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:30:11.001 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:30:11.014 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +17:30:11.423 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:30:11.424 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +17:30:11.430 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +17:30:11.841 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.555 seconds (JVM running for 7.566) +17:30:11.845 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +17:30:11.846 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +17:30:11.847 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +17:30:11.847 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +17:30:11.847 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +17:30:11.847 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +17:30:11.847 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +17:30:11.848 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +17:30:11.848 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +17:30:12.005 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:30:12.006 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:30:25.972 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [a0a91f50-1]- api start time:1695634225972 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"9rrMq5+usZDvq9Z1DzKmWg==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:30:26.001 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,69] []- 登录成功SN:QGBOX230919163545yS9 +17:30:26.010 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [a0a91f50-1]- api end time:1695634226010, total time:38 +17:30:28.248 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:30:28.303 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,84] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:30:28.402 [reactor-http-nio-2] ERROR r.c.p.Operators - [error,324] []- Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 +Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 + at java.util.ArrayList.rangeCheck(ArrayList.java:659) + at java.util.ArrayList.get(ArrayList.java:435) + at com.qiuguo.iot.box.websocket.api.handler.BoxWebSocketHandler.lambda$null$0(BoxWebSocketHandler.java:78) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) + at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onSubscribe(MonoFlatMap.java:238) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:160) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) + at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:413) + at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:424) + at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:478) + at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:712) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +17:30:45.578 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:30:45.580 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,84] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:31:06.433 [reactor-http-nio-2] ERROR r.c.p.Operators - [error,324] []- Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 +Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 + at java.util.ArrayList.rangeCheck(ArrayList.java:659) + at java.util.ArrayList.get(ArrayList.java:435) + at com.qiuguo.iot.box.websocket.api.handler.BoxWebSocketHandler.lambda$null$0(BoxWebSocketHandler.java:78) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) + at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onSubscribe(MonoFlatMap.java:238) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:160) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) + at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:413) + at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:424) + at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:478) + at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:712) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +17:31:06.443 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:31:06.443 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:31:06.444 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:31:16.450 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:31:16.450 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:31:16.453 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:18.881 [Thread-38] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:33:18.881 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:33:18.881 [Thread-38] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:33:18.882 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:33:21.891 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$4,101] []- 设备断开连接SN:QGBOX230919163545yS9 +17:33:21.892 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +17:33:21.893 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +17:33:21.893 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +17:33:21.897 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +17:33:21.898 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +17:33:24.903 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,149] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown stop +17:33:24.905 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,413] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown begin +17:33:26.540 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,238] []- removed ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:26.542 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:26.543 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown begin +17:33:29.546 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,136] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown stop +17:33:29.546 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin +17:33:29.546 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,134] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop +17:33:29.547 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,418] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown stop +17:33:29.547 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,719] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown begin +17:33:29.547 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,72] []- [NamingHttpClientManager] Start destroying NacosRestTemplate +17:33:29.547 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,79] []- [NamingHttpClientManager] Destruction of the end +17:33:29.547 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialWatcher - [stop,105] []- [null] CredentialWatcher is stopped +17:33:29.548 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialService - [free,98] []- [null] CredentialService is freed +17:33:29.548 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,723] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown stop +17:33:38.411 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:33:39.221 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:33:39.233 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:33:39.234 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:33:39.252 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:33:39.843 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:33:39.845 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:33:39.852 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:33:39.860 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:33:39.861 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:33:39.869 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:33:40.003 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=a0298bed-f54b-3b57-8e34-33ee5cfc4c2d +17:33:40.171 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$dead0f04] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.182 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.183 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.183 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/59930654] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.184 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.186 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.187 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.188 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.189 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.190 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$394f3f16] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.212 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.213 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$83c0e32] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.215 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$8c92da0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.223 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.225 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.267 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.269 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.285 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.314 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.320 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$ad374908] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:41.027 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:33:41.363 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +17:33:41.363 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +17:33:41.364 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +17:33:41.411 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +17:33:41.906 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +17:33:41.907 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +17:33:41.908 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +17:33:42.442 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +17:33:43.505 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:43.510 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:43.524 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +17:33:43.946 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:33:43.947 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +17:33:43.951 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +17:33:44.380 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.774 seconds (JVM running for 7.806) +17:33:44.385 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +17:33:44.386 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +17:33:44.386 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +17:33:44.387 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +17:33:44.387 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +17:33:44.387 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +17:33:44.387 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +17:33:44.388 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +17:33:44.388 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +17:33:44.515 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:44.516 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:48.977 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [279820e9-1]- api start time:1695634428976 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"gZoZ97PTfC9ToeKBkBGNXg==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:33:49.009 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,69] []- 登录成功SN:QGBOX230919163545yS9 +17:33:49.019 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [279820e9-1]- api end time:1695634429019, total time:43 +17:33:51.787 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:33:51.835 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,92] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:34:04.673 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$0,83] []- 未匹配到自定义命令,调用千问 +17:34:06.633 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$1,89] []- 未匹配到自定义命令,调用千问 +17:34:06.634 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:34:06.634 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:34:06.635 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:34:16.645 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:34:16.645 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:34:16.648 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:34:34.630 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:34:58.881 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,92] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:34:58.887 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:35:54.837 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:35:55.751 [com.alibaba.nacos.naming.beat.sender] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', metadata={preserved.register.source=SPRING_CLOUD}} +17:35:55.753 [com.alibaba.nacos.naming.beat.sender] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', metadata={preserved.register.source=SPRING_CLOUD}} +17:36:01.074 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:36:33.401 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$0,83] []- 未匹配到自定义命令,调用千问 +17:36:33.402 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$1,89] []- 未匹配到自定义命令,调用千问 +17:36:33.423 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:36:33.423 [Thread-38] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:36:33.423 [Thread-38] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:36:33.423 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:38:33.453 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:38:34.289 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:38:34.305 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:38:34.305 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:38:34.321 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:38:34.879 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:38:34.881 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:38:34.888 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:38:34.894 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:38:34.895 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:38:34.901 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:38:35.074 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=a0298bed-f54b-3b57-8e34-33ee5cfc4c2d +17:38:35.155 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$2d6c7930] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.164 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.165 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.165 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/194318210] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.166 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.168 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.169 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.170 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.171 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.172 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$880ea942] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.193 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.193 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$56fb785e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.196 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$578897cc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.203 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.205 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.246 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.247 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.263 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.290 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.296 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$fbf6b334] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:36.015 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:38:36.378 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +17:38:36.378 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +17:38:36.379 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +17:38:36.425 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +17:38:36.971 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +17:38:36.971 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +17:38:36.972 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +17:38:37.508 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +17:38:38.518 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:38:38.521 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:38:38.536 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +17:38:38.961 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:38:38.962 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +17:38:38.966 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +17:38:39.419 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.791 seconds (JVM running for 7.8) +17:38:39.423 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +17:38:39.424 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +17:38:39.424 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +17:38:39.425 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +17:38:39.425 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +17:38:39.425 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +17:38:39.426 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +17:38:39.426 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +17:38:39.426 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +17:38:39.527 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:38:39.529 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:38:47.937 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [fc06728f-1]- api start time:1695634727937 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"RNV8SoN6lsGBwgOXWrdScQ==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:38:47.969 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,69] []- 登录成功SN:QGBOX230919163545yS9 +17:38:47.978 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [fc06728f-1]- api end time:1695634727978, total time:41 +17:38:50.214 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯和风扇"} +17:38:54.933 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,92] []- 收到SN:QGBOX230919163545yS9,消息打开灯和风扇 +17:39:19.098 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:39:19.094 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$0,83] []- 未匹配到自定义命令,调用千问 +17:39:19.098 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:39:19.099 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$1,89] []- 未匹配到自定义命令,调用千问 +17:39:19.100 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:39:19.114 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:39:19.114 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:39:19.114 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:39:19.115 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:39:22.123 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$4,109] []- 设备断开连接SN:QGBOX230919163545yS9 +17:39:22.125 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +17:39:22.125 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +17:39:22.125 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +17:39:22.129 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +17:39:22.129 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +17:41:07.288 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:41:08.086 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:41:08.099 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:41:08.100 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] diff --git a/logs/iot-box-websocket-api/warn.log b/logs/iot-box-websocket-api/warn.log index 5842e64..78eb6ab 100644 --- a/logs/iot-box-websocket-api/warn.log +++ b/logs/iot-box-websocket-api/warn.log @@ -57,3 +57,2183 @@ 09:18:10.484 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP 09:18:20.515 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] 09:18:20.516 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +14:45:45.581 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [3e40e613-1]- api start time:1695624345581 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"VwYz/pkoM4NyjLK+IuQdZg==", upgrade:"websocket"] +14:45:45.613 [reactor-http-nio-2] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [3e40e613-1]- [3e40e613-1] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +14:45:45.615 [reactor-http-nio-2] ERROR r.n.h.s.HttpServerOperations - [error,324] [3e40e613-1]- [3e40e613-1, L:/192.168.8.175:8080 - R:/192.168.8.61:58287] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +14:45:45.617 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [3e40e613-1]- api end time:1695624345616, total time:35 +14:54:04.699 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [f2bf8af4-2]- api start time:1695624844699 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"24I3BEmIznXfkSO5U7qBMQ==", upgrade:"websocket"] +14:54:04.701 [reactor-http-nio-3] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [f2bf8af4-2]- [f2bf8af4-2] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +14:54:04.701 [reactor-http-nio-3] ERROR r.n.h.s.HttpServerOperations - [error,324] [f2bf8af4-2]- [f2bf8af4-1, L:/192.168.8.175:8080 - R:/192.168.8.61:58320] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +14:54:04.702 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [f2bf8af4-2]- api end time:1695624844702, total time:3 +14:57:58.818 [reactor-http-nio-4] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [1aea5dbb-3]- api start time:1695625078818 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"TjSnblkBBAm6gdo+ZwxxMA==", upgrade:"websocket"] +14:57:58.820 [reactor-http-nio-4] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [1aea5dbb-3]- [1aea5dbb-3] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +14:57:58.820 [reactor-http-nio-4] ERROR r.n.h.s.HttpServerOperations - [error,324] [1aea5dbb-3]- [1aea5dbb-1, L:/192.168.8.175:8080 - R:/192.168.8.61:58348] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +14:57:58.821 [reactor-http-nio-4] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [1aea5dbb-3]- api end time:1695625078821, total time:3 +14:58:24.754 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [2632921b-4]- api start time:1695625104754 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"H6dOOV8YFqYQj+1WvuubOw==", upgrade:"websocket"] +14:58:24.756 [reactor-http-nio-5] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [2632921b-4]- [2632921b-4] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +14:58:24.756 [reactor-http-nio-5] ERROR r.n.h.s.HttpServerOperations - [error,324] [2632921b-4]- [2632921b-1, L:/192.168.8.175:8080 - R:/192.168.8.61:58378] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +14:58:24.757 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [2632921b-4]- api end time:1695625104757, total time:3 +15:02:27.082 [com.alibaba.nacos.naming.beat.sender] ERROR c.a.n.client.naming - [callServer,617] []- [NA] failed to request +java.net.SocketTimeoutException: connect timed out + at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) + at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:81) + at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476) + at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218) + at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200) + at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162) + at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394) + at java.net.Socket.connect(Socket.java:606) + at sun.net.NetworkClient.doConnect(NetworkClient.java:175) + at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) + at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) + at sun.net.www.http.HttpClient.(HttpClient.java:242) + at sun.net.www.http.HttpClient.New(HttpClient.java:339) + at sun.net.www.http.HttpClient.New(HttpClient.java:357) + at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1240) + at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1167) + at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1061) + at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:995) + at com.alibaba.nacos.common.http.client.request.JdkHttpClientRequest.execute(JdkHttpClientRequest.java:112) + at com.alibaba.nacos.common.http.client.NacosRestTemplate.execute(NacosRestTemplate.java:482) + at com.alibaba.nacos.common.http.client.NacosRestTemplate.exchangeForm(NacosRestTemplate.java:427) + at com.alibaba.nacos.client.naming.net.NamingProxy.callServer(NamingProxy.java:603) + at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:526) + at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:498) + at com.alibaba.nacos.client.naming.net.NamingProxy.sendBeat(NamingProxy.java:433) + at com.alibaba.nacos.client.naming.beat.BeatReactor$BeatTask.run(BeatReactor.java:167) + at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) + at java.util.concurrent.FutureTask.run(FutureTask.java:266) + at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) + at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) + at java.lang.Thread.run(Thread.java:750) +15:18:23.502 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [ab3c8841-5]- api start time:1695626303502 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"07MTfc3t2d0WM04AXA5+NA==", upgrade:"websocket"] +15:18:23.505 [reactor-http-nio-6] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [ab3c8841-5]- [ab3c8841-5] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:18:23.505 [reactor-http-nio-6] ERROR r.n.h.s.HttpServerOperations - [error,324] [ab3c8841-5]- [ab3c8841-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59092] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:18:23.506 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [ab3c8841-5]- api end time:1695626303506, total time:4 +15:29:49.216 [reactor-http-nio-8] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [59cd57ca-6]- api start time:1695626989216 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"+mtAHsqRX7b7mteGWRm91A==", upgrade:"websocket"] +15:29:49.220 [reactor-http-nio-8] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [59cd57ca-6]- [59cd57ca-6] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:29:49.221 [reactor-http-nio-8] ERROR r.n.h.s.HttpServerOperations - [error,324] [59cd57ca-6]- [59cd57ca-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59124] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:29:49.222 [reactor-http-nio-8] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [59cd57ca-6]- api end time:1695626989222, total time:6 +15:30:50.724 [reactor-http-nio-9] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [e651358e-7]- api start time:1695627050724 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"jZh/fma8dn66OjTg3Wc/3A==", upgrade:"websocket"] +15:30:50.727 [reactor-http-nio-9] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [e651358e-7]- [e651358e-7] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:30:50.727 [reactor-http-nio-9] ERROR r.n.h.s.HttpServerOperations - [error,324] [e651358e-7]- [e651358e-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59153] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:30:50.728 [reactor-http-nio-9] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [e651358e-7]- api end time:1695627050728, total time:4 +15:31:47.207 [reactor-http-nio-10] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [98f2001f-8]- api start time:1695627107207 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"YAKptr05aHqEK0oYEw9pgg==", upgrade:"websocket"] +15:31:47.209 [reactor-http-nio-10] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [98f2001f-8]- [98f2001f-8] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:31:47.209 [reactor-http-nio-10] ERROR r.n.h.s.HttpServerOperations - [error,324] [98f2001f-8]- [98f2001f-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59182] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:31:47.211 [reactor-http-nio-10] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [98f2001f-8]- api end time:1695627107211, total time:4 +15:34:32.465 [reactor-http-nio-11] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [cf234238-9]- api start time:1695627272465 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"itfi9xskaP2KRwWfCqKDgg==", upgrade:"websocket"] +15:34:32.467 [reactor-http-nio-11] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [cf234238-9]- [cf234238-9] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:34:32.468 [reactor-http-nio-11] ERROR r.n.h.s.HttpServerOperations - [error,324] [cf234238-9]- [cf234238-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59210] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:34:32.469 [reactor-http-nio-11] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [cf234238-9]- api end time:1695627272469, total time:4 +15:37:27.355 [reactor-http-nio-12] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [b82cca92-10]- api start time:1695627447355 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"4cwfSvJ8wmSPQRdhs9WJYA==", upgrade:"websocket"] +15:37:27.357 [reactor-http-nio-12] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [b82cca92-10]- [b82cca92-10] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +15:37:27.357 [reactor-http-nio-12] ERROR r.n.h.s.HttpServerOperations - [error,324] [b82cca92-10]- [b82cca92-1, L:/192.168.8.175:8080 - R:/192.168.8.61:59249] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$1b26f7d3 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +15:37:27.359 [reactor-http-nio-12] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [b82cca92-10]- api end time:1695627447359, total time:4 +15:42:51.043 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +15:42:51.043 [Thread-36] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +15:42:51.043 [Thread-36] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +15:42:51.044 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +15:42:51.061 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +15:42:51.062 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +15:42:51.062 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +15:42:51.089 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +15:42:51.090 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +15:42:54.094 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,149] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown stop +15:42:54.095 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,413] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown begin +15:42:56.412 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,238] []- removed ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:42:56.415 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:42:56.417 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown begin +15:42:59.420 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,136] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown stop +15:42:59.420 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin +15:42:59.421 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,134] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop +15:42:59.421 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,418] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown stop +15:42:59.421 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,719] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown begin +15:42:59.421 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,72] []- [NamingHttpClientManager] Start destroying NacosRestTemplate +15:42:59.421 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,79] []- [NamingHttpClientManager] Destruction of the end +15:42:59.421 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialWatcher - [stop,105] []- [null] CredentialWatcher is stopped +15:42:59.422 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialService - [free,98] []- [null] CredentialService is freed +15:42:59.422 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,723] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown stop +15:43:09.570 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +15:43:10.286 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +15:43:10.294 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +15:43:10.295 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +15:43:10.308 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +15:43:10.764 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +15:43:10.765 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +15:43:10.770 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 2 ms. Found 0 R2DBC repository interfaces. +15:43:10.775 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +15:43:10.776 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +15:43:10.781 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +15:43:10.883 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=362e1134-2ebc-3f81-9328-e1dc2bef451d +15:43:11.006 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$5dab70de] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.015 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.015 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.015 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/1713847712] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.016 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.018 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.019 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.020 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.021 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.022 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$b84da0f0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.041 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.042 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$873a700c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.044 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$87c78f7a] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.051 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.052 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.084 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.086 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.099 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.121 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.127 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$2c35aae2] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +15:43:11.755 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +15:43:12.047 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +15:43:12.048 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +15:43:12.048 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +15:43:12.092 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +15:43:12.575 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +15:43:12.576 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +15:43:12.576 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +15:43:13.080 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +15:43:13.994 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:43:13.998 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:43:14.010 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +15:43:14.426 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +15:43:14.426 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +15:43:14.430 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +15:43:14.851 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.039 seconds (JVM running for 7.019) +15:43:14.855 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +15:43:14.856 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +15:43:14.856 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +15:43:14.857 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +15:43:14.857 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +15:43:14.857 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +15:43:14.857 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +15:43:14.857 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +15:43:14.857 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +15:43:15.003 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +15:43:15.005 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:10:55.545 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [a583024d-1]- api start time:1695633055545 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633055969", accept-encoding:"gzip", sec-websocket-key:"uECMH0pAxGJp+7wWucjD1g==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:10:55.594 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:10:55.605 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [a583024d-1]- api end time:1695633055605, total time:60 +17:11:12.236 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [4aad9948-2]- api start time:1695633072236 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633072760", accept-encoding:"gzip", sec-websocket-key:"2troqmC7qUOGnapfDFbqKw==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:11:12.238 [reactor-http-nio-3] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:11:12.239 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [4aad9948-2]- api end time:1695633072239, total time:3 +17:11:55.430 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:11:55.430 [reactor-http-nio-3] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:11:58.917 [reactor-http-nio-4] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [fa97a80e-3]- api start time:1695633118917 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633119414", accept-encoding:"gzip", sec-websocket-key:"sUAOwpwgIauLoFBLhqt0Lg==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:11:58.922 [reactor-http-nio-4] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:11:58.923 [reactor-http-nio-4] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [fa97a80e-3]- api end time:1695633118923, total time:6 +17:12:22.968 [reactor-http-nio-4] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:12:27.512 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [07adf94d-4]- api start time:1695633147511 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633148011", accept-encoding:"gzip", sec-websocket-key:"sw0cZ0e/+ysJU/BmJyNNjw==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:12:27.513 [reactor-http-nio-5] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:12:27.513 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [07adf94d-4]- api end time:1695633147513, total time:2 +17:14:40.318 [reactor-http-nio-5] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:14:44.549 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [53acf36c-5]- api start time:1695633284549 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633284960", accept-encoding:"gzip", sec-websocket-key:"xnCNSX4csb7ZGhBGy2Pqeg==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:14:44.552 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:14:44.554 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [53acf36c-5]- api end time:1695633284554, total time:5 +17:15:52.216 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:15:57.098 [reactor-http-nio-7] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [88e76af3-6]- api start time:1695633357098 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", accept-encoding:"gzip", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits", sec-websocket-key:"RpZUzSeTEvqL9EdQZXZDjg==", upgrade:"websocket"] +17:15:57.104 [reactor-http-nio-7] ERROR o.s.w.s.a.HttpWebHandlerAdapter - [handleUnresolvedError,308] [88e76af3-6]- [88e76af3-6] Error [java.lang.NullPointerException] for HTTP GET "/websocket/customer", but ServerHttpResponse already committed (200 OK) +17:15:57.107 [reactor-http-nio-7] ERROR r.n.h.s.HttpServerOperations - [error,324] [88e76af3-6]- [88e76af3-1, L:/192.168.8.175:8080 - R:/192.168.8.61:61210] Error finishing response. Closing connection +java.lang.NullPointerException: null + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: +Error has been observed at the following site(s): + *__checkpoint ⇢ org.hswebframework.web.i18n.WebFluxLocaleFilter [DefaultWebFilterChain] + *__checkpoint ⇢ com.qiuguo.iot.box.websocket.api.filter.LogWebFilter$$EnhancerBySpringCGLIB$$cd6f87a2 [DefaultWebFilterChain] + *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] + *__checkpoint ⇢ HTTP GET "/websocket/customer" [ExceptionHandlingWebHandler] +Original Stack Trace: + at com.qiuguo.iot.box.websocket.api.handler.CustomerWebSocketHandler.handle(CustomerWebSocketHandler.java:43) + at org.springframework.web.reactive.socket.server.upgrade.ReactorNettyRequestUpgradeStrategy.lambda$null$0(ReactorNettyRequestUpgradeStrategy.java:176) + at reactor.netty.http.server.HttpServerOperations.lambda$withWebsocketSupport$15(HttpServerOperations.java:943) + at reactor.core.publisher.FluxDoOnEach$DoOnEachSubscriber.onComplete(FluxDoOnEach.java:214) + at reactor.core.publisher.Operators.complete(Operators.java:137) + at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:46) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:240) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onComplete(MonoIgnoreThen.java:203) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:89) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:230) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) + at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.request(FluxHide.java:152) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2196) + at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2070) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onSubscribe(FluxHide.java:122) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) + at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:201) + at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:83) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.lambda$subscribe$0(LocaleUtils.java:490) + at org.hswebframework.web.i18n.LocaleUtils.doWith(LocaleUtils.java:71) + at org.hswebframework.web.i18n.LocaleUtils$LocaleMono.subscribe(LocaleUtils.java:487) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) + at reactor.core.publisher.Mono.subscribe(Mono.java:4490) + at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) + at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:1002) + at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:707) + at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:481) + at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:621) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:230) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +17:15:57.108 [reactor-http-nio-7] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [88e76af3-6]- api end time:1695633357108, total time:10 +17:16:27.751 [reactor-http-nio-8] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [e0783a56-7]- api start time:1695633387751 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633388187", accept-encoding:"gzip", sec-websocket-key:"kkaUcxICA7TcrfHrxPbEKA==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:16:27.752 [reactor-http-nio-8] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:16:27.753 [reactor-http-nio-8] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [e0783a56-7]- api end time:1695633387753, total time:2 +17:17:20.409 [reactor-http-nio-9] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [451e0262-8]- api start time:1695633440409 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"+T5NnhFr5asu03MSA70Pew==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:17:20.412 [reactor-http-nio-9] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,97] []- 登录成功SN:QGBOX230919163545yS9 +17:17:20.413 [reactor-http-nio-9] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [451e0262-8]- api end time:1695633440413, total time:4 +17:21:21.433 [reactor-http-nio-10] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [65d2a6df-9]- api start time:1695633681432 ip:192.168.8.246 method:GET url:/websocket/customer param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"aB3XsPDqzrsFs0+tKC7ZKg==", Connection:"Upgrade", Upgrade:"websocket", time:"1695633119414", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", userid:"6205", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:21:21.434 [reactor-http-nio-10] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,67] []- 用户成功userId:6205 +17:21:21.435 [reactor-http-nio-10] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [65d2a6df-9]- api end time:1695633681435, total time:3 +17:22:19.326 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:22:19.326 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:22:19.327 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:22:19.327 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:22:22.346 [reactor-http-nio-10] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:22:22.347 [reactor-http-nio-8] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,90] []- 设备断开连接SN:6205 +17:22:22.347 [reactor-http-nio-9] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$5,120] []- 设备断开连接SN:QGBOX230919163545yS9 +17:22:22.352 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +17:22:22.352 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +17:22:22.352 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +17:22:22.356 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +17:22:22.357 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +17:22:25.359 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,149] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown stop +17:22:25.360 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,413] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown begin +17:22:28.363 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown begin +17:22:31.366 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,136] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown stop +17:22:31.366 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin +17:22:31.366 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,134] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop +17:22:31.367 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,418] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown stop +17:22:31.367 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,719] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown begin +17:22:31.367 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,72] []- [NamingHttpClientManager] Start destroying NacosRestTemplate +17:22:31.367 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,79] []- [NamingHttpClientManager] Destruction of the end +17:22:31.367 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialWatcher - [stop,105] []- [null] CredentialWatcher is stopped +17:22:31.367 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialService - [free,98] []- [null] CredentialService is freed +17:22:31.368 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,723] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown stop +17:22:44.561 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:22:45.345 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:22:45.353 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:22:45.354 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:22:45.370 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:22:45.926 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:22:45.927 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:22:45.934 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:22:45.942 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:22:45.943 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:22:45.948 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:22:46.130 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=362e1134-2ebc-3f81-9328-e1dc2bef451d +17:22:46.212 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$f3d8da3a] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.222 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.222 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.222 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/1707458318] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.223 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.225 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.226 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.227 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.228 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.229 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$4e7b0a4c] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.251 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.252 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$1d67d968] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.254 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$1df4f8d6] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.262 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.264 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.304 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.306 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.322 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.349 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:46.355 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$c263143e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:22:47.081 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:22:47.106 [main] WARN o.s.b.w.r.c.AnnotationConfigReactiveWebServerApplicationContext - [refresh,591] []- Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'boxWebSocketHandler': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.qiuguo.iot.third.service.NlpService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)} +17:22:47.115 [single-1] ERROR r.c.p.Operators - [error,324] []- Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'connectionFactoryTransactionManager': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!) +Caused by: org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'connectionFactoryTransactionManager': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:220) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) + at org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils.qualifiedBeanOfType(BeanFactoryAnnotationUtils.java:129) + at org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils.qualifiedBeanOfType(BeanFactoryAnnotationUtils.java:95) + at org.springframework.transaction.interceptor.TransactionAspectSupport.determineQualifiedTransactionManager(TransactionAspectSupport.java:515) + at org.springframework.transaction.interceptor.TransactionAspectSupport.determineTransactionManager(TransactionAspectSupport.java:493) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:342) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) + at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) + at org.hswebframework.web.crud.sql.DefaultR2dbcExecutor$$EnhancerBySpringCGLIB$$8bec0948.select() + at org.hswebframework.ezorm.rdb.operator.dml.query.DefaultQueryResultOperator.lambda$reactive$2(DefaultQueryResultOperator.java:53) + at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:46) + at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54) + at reactor.core.publisher.Flux.subscribe(Flux.java:8642) + at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) + at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) + at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62) + at reactor.core.publisher.FluxSubscribeOn$SubscribeOnSubscriber.run(FluxSubscribeOn.java:194) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) + at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) + at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266) + at java.util.concurrent.FutureTask.run(FutureTask.java) + at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) + at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) + at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) + at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) + at java.lang.Thread.run(Thread.java:750) +17:22:47.116 [single-1] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了0条自定义回答指令 +17:22:47.132 [main] INFO o.s.b.a.l.ConditionEvaluationReportLoggingListener - [logMessage,136] []- + +Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. +17:22:47.158 [main] ERROR o.s.b.d.LoggingFailureAnalysisReporter - [report,40] []- + +*************************** +APPLICATION FAILED TO START +*************************** + +Description: + +A component required a bean of type 'com.qiuguo.iot.third.service.NlpService' that could not be found. + + +Action: + +Consider defining a bean of type 'com.qiuguo.iot.third.service.NlpService' in your configuration. + +17:22:47.446 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:23:33.671 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:23:34.501 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:23:34.510 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:23:34.511 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:23:34.538 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:23:35.098 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:23:35.100 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:23:35.106 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:23:35.113 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:23:35.114 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:23:35.121 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:23:35.301 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=a0298bed-f54b-3b57-8e34-33ee5cfc4c2d +17:23:35.382 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$5697e073] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.392 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.393 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.393 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/1144673247] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.394 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.396 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.396 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.398 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.399 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.400 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$b13a1085] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.420 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.421 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$8026dfa1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.424 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$80b3ff0f] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.431 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.433 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.475 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.477 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.496 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.526 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:35.532 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$25221a77] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:23:36.251 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:23:36.607 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +17:23:36.607 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +17:23:36.608 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +17:23:36.656 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +17:23:37.148 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +17:23:37.149 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +17:23:37.150 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +17:23:37.669 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +17:23:38.646 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:23:38.650 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:23:38.663 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +17:23:39.086 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:23:39.086 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +17:23:39.090 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +17:23:39.532 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.653 seconds (JVM running for 7.665) +17:23:39.537 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +17:23:39.538 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +17:23:39.538 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +17:23:39.538 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +17:23:39.539 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +17:23:39.539 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +17:23:39.539 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +17:23:39.539 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +17:23:39.539 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +17:23:39.657 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:23:39.659 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:24:01.583 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [2cc6726b-1]- api start time:1695633841583 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633841962", accept-encoding:"gzip", sec-websocket-key:"l+bDRBlMYEHP37BEVxgo8g==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:24:15.631 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [69a90aed-2]- api start time:1695633855631 ip:192.168.8.61 method:GET url:/websocket/customer param:{} headers:[user-agent:"Dart/2.18 (dart:io)", connection:"Upgrade", cache-control:"no-cache", userid:"6205", time:"1695633846359", accept-encoding:"gzip", sec-websocket-key:"YNm7ZlPSo6oV5btCS8OwHg==", upgrade:"websocket", token:"ba2ef9fd8a70a6ac72c38aa6a46be4f6", sec-websocket-version:"13", host:"192.168.8.175:8080", sec-websocket-extensions:"permessage-deflate; client_max_window_bits"] +17:24:19.990 [reactor-http-nio-3] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,69] []- 用户成功userId:6205 +17:24:19.990 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [handle,69] []- 用户成功userId:6205 +17:24:20.000 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [2cc6726b-1]- api end time:1695633860000, total time:18417 +17:24:20.001 [reactor-http-nio-3] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [69a90aed-2]- api end time:1695633860000, total time:4369 +17:25:21.971 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [86cabd7e-3]- api start time:1695633921970 ip:192.168.8.246 method:GET url:/websocket/push/message param:{type=[1], id=[6205], message=[明天是个好日子,加油!]} headers:[Host:"192.168.8.175:8080", Connection:"keep-alive", Upgrade-Insecure-Requests:"1", User-Agent:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.35", Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", Accept-Encoding:"gzip, deflate", Accept-Language:"zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"] +17:25:22.048 [reactor-http-nio-5] DEBUG o.h.w.c.w.ResponseMessageWrapper - [selectMediaType,161] [86cabd7e-3]- [86cabd7e-3] Using 'application/json' given [text/html, application/xhtml+xml, image/webp, image/apng, application/xml;q=0.9, application/signed-exchange;v=b3;q=0.7, */*;q=0.8] and supported [application/json, application/*+json, application/x-ndjson, text/event-stream] +17:25:22.049 [reactor-http-nio-5] DEBUG o.h.w.c.w.ResponseMessageWrapper - [writeBody,174] [86cabd7e-3]- [86cabd7e-3] 0..1 [org.hswebframework.web.crud.web.ResponseMessage] +17:25:22.053 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$writeWith$1,108] [86cabd7e-3]- response:{"message":"success","result":"推送成功","status":200,"timestamp":1695633922050} +17:25:22.056 [reactor-http-nio-5] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [86cabd7e-3]- api end time:1695633922056, total time:86 +17:28:59.230 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [c19ff121-4]- api start time:1695634139230 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"IBrtoLkJ1NLSD4TaK/lGAw==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:28:59.233 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,69] []- 登录成功SN:QGBOX230919163545yS9 +17:28:59.234 [reactor-http-nio-6] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [c19ff121-4]- api end time:1695634139234, total time:4 +17:29:05.865 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:29:05.887 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,84] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:29:28.642 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:29:28.642 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,84] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:29:47.553 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:29:47.553 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:29:47.553 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:29:47.554 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:29:50.562 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,92] []- 用户断开连接SN:6205 +17:29:50.562 [reactor-http-nio-6] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$4,101] []- 设备断开连接SN:QGBOX230919163545yS9 +17:29:50.562 [reactor-http-nio-3] INFO c.q.i.b.w.a.h.CustomerWebSocketHandler - [lambda$handle$3,92] []- 用户断开连接SN:6205 +17:29:50.564 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +17:29:50.564 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +17:29:50.564 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +17:29:50.567 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +17:29:50.568 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +17:29:53.572 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,149] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown stop +17:29:53.573 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,413] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown begin +17:29:54.450 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,238] []- removed ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:29:54.452 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}] +17:29:54.453 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown begin +17:29:57.456 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,136] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown stop +17:29:57.456 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin +17:29:57.456 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,134] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop +17:29:57.457 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,418] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown stop +17:29:57.457 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,719] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown begin +17:29:57.457 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,72] []- [NamingHttpClientManager] Start destroying NacosRestTemplate +17:29:57.457 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,79] []- [NamingHttpClientManager] Destruction of the end +17:29:57.458 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialWatcher - [stop,105] []- [null] CredentialWatcher is stopped +17:29:57.458 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialService - [free,98] []- [null] CredentialService is freed +17:29:57.458 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,723] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown stop +17:30:06.065 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:30:06.845 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:30:06.853 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:30:06.853 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:30:06.868 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:30:07.419 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:30:07.421 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:30:07.427 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:30:07.435 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:30:07.436 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:30:07.441 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:30:07.613 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=a0298bed-f54b-3b57-8e34-33ee5cfc4c2d +17:30:07.700 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$2d6c7930] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.709 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.710 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.710 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/194318210] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.711 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.713 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.714 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.715 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.716 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.717 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$880ea942] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.740 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.741 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$56fb785e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.744 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$578897cc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.751 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.753 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.797 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.798 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.816 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.842 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:07.849 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$fbf6b334] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:30:08.554 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:30:08.906 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +17:30:08.906 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +17:30:08.907 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +17:30:08.954 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +17:30:09.471 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +17:30:09.472 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +17:30:09.473 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +17:30:09.986 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +17:30:10.996 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:30:11.001 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:30:11.014 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +17:30:11.423 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:30:11.424 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +17:30:11.430 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +17:30:11.841 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.555 seconds (JVM running for 7.566) +17:30:11.845 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +17:30:11.846 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +17:30:11.847 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +17:30:11.847 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +17:30:11.847 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +17:30:11.847 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +17:30:11.847 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +17:30:11.848 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +17:30:11.848 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +17:30:12.005 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:30:12.006 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:30:25.972 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [a0a91f50-1]- api start time:1695634225972 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"9rrMq5+usZDvq9Z1DzKmWg==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:30:26.001 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,69] []- 登录成功SN:QGBOX230919163545yS9 +17:30:26.010 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [a0a91f50-1]- api end time:1695634226010, total time:38 +17:30:28.248 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:30:28.303 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,84] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:30:28.402 [reactor-http-nio-2] ERROR r.c.p.Operators - [error,324] []- Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 +Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 + at java.util.ArrayList.rangeCheck(ArrayList.java:659) + at java.util.ArrayList.get(ArrayList.java:435) + at com.qiuguo.iot.box.websocket.api.handler.BoxWebSocketHandler.lambda$null$0(BoxWebSocketHandler.java:78) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) + at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onSubscribe(MonoFlatMap.java:238) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:160) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) + at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:413) + at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:424) + at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:478) + at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:712) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +17:30:45.578 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:30:45.580 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,84] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:31:06.433 [reactor-http-nio-2] ERROR r.c.p.Operators - [error,324] []- Operator called default onErrorDropped +reactor.core.Exceptions$ErrorCallbackNotImplemented: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 +Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 + at java.util.ArrayList.rangeCheck(ArrayList.java:659) + at java.util.ArrayList.get(ArrayList.java:435) + at com.qiuguo.iot.box.websocket.api.handler.BoxWebSocketHandler.lambda$null$0(BoxWebSocketHandler.java:78) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:113) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:210) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) + at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:539) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2400) + at reactor.core.publisher.MonoFlatMap$FlatMapInner.onSubscribe(MonoFlatMap.java:238) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onSubscribe(LogMdcConfiguration.java:60) + at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) + at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) + at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) + at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.FluxFilterFuseable$FilterFuseableSubscriber.onNext(FluxFilterFuseable.java:118) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onNext(LogMdcConfiguration.java:66) + at reactor.core.publisher.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:137) + at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1839) + at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:160) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) + at com.qiuguo.iot.box.websocket.api.filter.LogMdcConfiguration$MdcContextSubscriber.onComplete(LogMdcConfiguration.java:47) + at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144) + at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:413) + at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:424) + at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:478) + at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:712) + at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) + at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) + at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) + at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) + at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) + at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) + at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) + at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) + at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) + at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) + at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) + at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) + at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) + at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) + at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) + at java.lang.Thread.run(Thread.java:750) +17:31:06.443 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:31:06.443 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:31:06.444 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:31:16.450 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:31:16.450 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:31:16.453 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:18.881 [Thread-38] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:33:18.881 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:33:18.881 [Thread-38] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:33:18.882 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:33:21.891 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$4,101] []- 设备断开连接SN:QGBOX230919163545yS9 +17:33:21.892 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +17:33:21.893 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +17:33:21.893 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +17:33:21.897 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +17:33:21.898 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +17:33:24.903 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,149] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown stop +17:33:24.905 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,413] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown begin +17:33:26.540 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,238] []- removed ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:26.542 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:26.543 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown begin +17:33:29.546 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,136] []- com.alibaba.nacos.client.naming.core.PushReceiver do shutdown stop +17:33:29.546 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,132] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown begin +17:33:29.546 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,134] []- com.alibaba.nacos.client.naming.backups.FailoverReactor do shutdown stop +17:33:29.547 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,418] []- com.alibaba.nacos.client.naming.core.HostReactor do shutdown stop +17:33:29.547 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,719] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown begin +17:33:29.547 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,72] []- [NamingHttpClientManager] Start destroying NacosRestTemplate +17:33:29.547 [SpringApplicationShutdownHook] WARN c.a.n.client.naming - [shutdown,79] []- [NamingHttpClientManager] Destruction of the end +17:33:29.547 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialWatcher - [stop,105] []- [null] CredentialWatcher is stopped +17:33:29.548 [SpringApplicationShutdownHook] INFO c.a.n.c.i.CredentialService - [free,98] []- [null] CredentialService is freed +17:33:29.548 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,723] []- com.alibaba.nacos.client.naming.net.NamingProxy do shutdown stop +17:33:38.411 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:33:39.221 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:33:39.233 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:33:39.234 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:33:39.252 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:33:39.843 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:33:39.845 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:33:39.852 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:33:39.860 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:33:39.861 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:33:39.869 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:33:40.003 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=a0298bed-f54b-3b57-8e34-33ee5cfc4c2d +17:33:40.171 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$dead0f04] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.182 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.183 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.183 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/59930654] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.184 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.186 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.187 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.188 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.189 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.190 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$394f3f16] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.212 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.213 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$83c0e32] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.215 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$8c92da0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.223 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.225 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.267 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.269 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.285 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.314 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:40.320 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$ad374908] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:33:41.027 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:33:41.363 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +17:33:41.363 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +17:33:41.364 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +17:33:41.411 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +17:33:41.906 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +17:33:41.907 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +17:33:41.908 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +17:33:42.442 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +17:33:43.505 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:43.510 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:43.524 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +17:33:43.946 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:33:43.947 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +17:33:43.951 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +17:33:44.380 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.774 seconds (JVM running for 7.806) +17:33:44.385 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +17:33:44.386 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +17:33:44.386 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +17:33:44.387 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +17:33:44.387 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +17:33:44.387 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +17:33:44.387 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +17:33:44.388 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +17:33:44.388 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +17:33:44.515 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:44.516 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:33:48.977 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [279820e9-1]- api start time:1695634428976 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"gZoZ97PTfC9ToeKBkBGNXg==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:33:49.009 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,69] []- 登录成功SN:QGBOX230919163545yS9 +17:33:49.019 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [279820e9-1]- api end time:1695634429019, total time:43 +17:33:51.787 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:33:51.835 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,92] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:34:04.673 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$0,83] []- 未匹配到自定义命令,调用千问 +17:34:06.633 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$1,89] []- 未匹配到自定义命令,调用千问 +17:34:06.634 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:34:06.634 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:34:06.635 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:34:16.645 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:34:16.645 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:34:16.648 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:34:34.630 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯"} +17:34:58.881 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,92] []- 收到SN:QGBOX230919163545yS9,消息打开灯 +17:34:58.887 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:35:54.837 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:35:55.751 [com.alibaba.nacos.naming.beat.sender] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', metadata={preserved.register.source=SPRING_CLOUD}} +17:35:55.753 [com.alibaba.nacos.naming.beat.sender] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', metadata={preserved.register.source=SPRING_CLOUD}} +17:36:01.074 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:36:33.401 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$0,83] []- 未匹配到自定义命令,调用千问 +17:36:33.402 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$1,89] []- 未匹配到自定义命令,调用千问 +17:36:33.423 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:36:33.423 [Thread-38] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:36:33.423 [Thread-38] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:36:33.423 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:38:33.453 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:38:34.289 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:38:34.305 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:38:34.305 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}] +17:38:34.321 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStartupProfileInfo,637] []- The following 1 profile is active: "dev" +17:38:34.879 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:38:34.881 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data R2DBC repositories in DEFAULT mode. +17:38:34.888 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 3 ms. Found 0 R2DBC repository interfaces. +17:38:34.894 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [multipleStoresDetected,262] []- Multiple Spring Data modules found, entering strict repository configuration mode +17:38:34.895 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,132] []- Bootstrapping Spring Data Redis repositories in DEFAULT mode. +17:38:34.901 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - [registerRepositoriesIn,201] []- Finished Spring Data repository scanning in 0 ms. Found 0 Redis repository interfaces. +17:38:35.074 [main] INFO o.s.c.c.s.GenericScope - [setSerializationId,283] []- BeanFactory id=a0298bed-f54b-3b57-8e34-33ee5cfc4c2d +17:38:35.155 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$$EnhancerBySpringCGLIB$$2d6c7930] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.164 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.165 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.165 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda$438/194318210] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.166 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.168 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'expressionDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.ExpressionDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.169 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'annotationDataSourceSwitchStrategyMatcher' of type [org.hswebframework.web.datasource.strategy.AnnotationDataSourceSwitchStrategyMatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.170 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'alwaysNoMatchStrategyMatcher' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$1] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.171 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'switcherMethodMatcherPointcutAdvisor' of type [org.hswebframework.web.datasource.AopDataSourceSwitcherAutoConfiguration$SwitcherMethodMatcherPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.172 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration' of type [org.hswebframework.web.authorization.simple.DefaultAuthorizationAutoConfiguration$$EnhancerBySpringCGLIB$$880ea942] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.193 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'easyorm-org.hswebframework.web.crud.configuration.EasyormProperties' of type [org.hswebframework.web.crud.configuration.EasyormProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.193 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.EasyormConfiguration' of type [org.hswebframework.web.crud.configuration.EasyormConfiguration$$EnhancerBySpringCGLIB$$56fb785e] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.196 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration' of type [org.hswebframework.web.crud.configuration.R2dbcSqlExecutorConfiguration$$EnhancerBySpringCGLIB$$578897cc] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.203 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration' of type [org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations$PoolConfiguration$PooledConnectionFactoryConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.205 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'spring.r2dbc-org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties' of type [org.springframework.boot.autoconfigure.r2dbc.R2dbcProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.246 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'connectionFactory' of type [io.r2dbc.pool.ConnectionPool] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.247 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'reactiveSqlExecutor' of type [org.hswebframework.web.crud.sql.DefaultR2dbcExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.263 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'syncSqlExecutor' of type [org.hswebframework.ezorm.rdb.executor.reactive.ReactiveSyncSqlExecutor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.290 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'databaseMetadata' of type [org.hswebframework.ezorm.rdb.metadata.RDBDatabaseMetadata] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:35.296 [main] INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - [postProcessAfterInitialization,376] []- Bean 'org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration' of type [org.hswebframework.web.datasource.DynamicDataSourceAutoConfiguration$$EnhancerBySpringCGLIB$$fbf6b334] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) +17:38:36.015 [main] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [initGroup,44] []- 初始化自定义回答缓存数据 +17:38:36.378 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,39] []- ==> Preparing: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = ? limit ?,? +17:38:36.378 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,41] []- ==> Parameters: 0(Integer),0(Integer),1000(Integer) +17:38:36.379 [reactor-tcp-nio-2] DEBUG c.q.i.d.e.s.SystemTalkAnswerConfigEntity - [printSql,43] []- ==> Native: select system_talk_answer_config.`id` as `id` , system_talk_answer_config.`is_delete` as `isDelete` , system_talk_answer_config.`create_time` as `createTime` , system_talk_answer_config.`modify_time` as `modifyTime` , system_talk_answer_config.`user_id` as `userId` , system_talk_answer_config.`ask_key` as `askKey` , system_talk_answer_config.`answer_value` as `answerValue` , system_talk_answer_config.`answer_value_faild` as `answerValueFaild` , system_talk_answer_config.`answer_action` as `answerAction` , system_talk_answer_config.`answer_action_faild` as `answerActionFaild` , system_talk_answer_config.`answer_back_sound` as `answerBackSound` , system_talk_answer_config.`answer_back_img` as `answerBackImg` , system_talk_answer_config.`key_order` as `keyOrder` , system_talk_answer_config.`answer_type` as `answerType` from qiuguo_iot.system_talk_answer_config system_talk_answer_config where system_talk_answer_config.`is_delete` = 0 limit 0,1000 +17:38:36.425 [reactor-tcp-nio-2] INFO c.q.i.d.s.s.SystemTalkAnswerConfigService - [lambda$initGroup$1,52] []- 配置最多读取1000条,实际读取了35条自定义回答指令 +17:38:36.971 [main] INFO c.a.n.client.naming - [call,65] []- initializer namespace from System Property :null +17:38:36.971 [main] INFO c.a.n.client.naming - [call,74] []- initializer namespace from System Environment :null +17:38:36.972 [main] INFO c.a.n.client.naming - [call,84] []- initializer namespace from System Property :null +17:38:37.508 [main] INFO o.s.b.a.e.w.EndpointLinksResolver - [,58] []- Exposing 18 endpoint(s) beneath base path '/actuator' +17:38:38.518 [main] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:38:38.521 [main] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(2) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:38:38.536 [main] INFO o.s.b.w.e.n.NettyWebServer - [start,111] []- Netty started on port 8080 +17:38:38.961 [main] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:38:38.962 [main] INFO c.a.n.client.naming - [registerService,230] []- [REGISTER-SERVICE] public registering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={preserved.register.source=SPRING_CLOUD}} +17:38:38.966 [main] INFO c.a.c.n.r.NacosServiceRegistry - [register,75] []- nacos registry, DEFAULT_GROUP qiuguo-iot-box-websocket 172.26.32.1:8080 register finished +17:38:39.419 [main] INFO c.q.i.b.w.a.IotBoxWebsocketApplication - [logStarted,61] []- Started IotBoxWebsocketApplication in 6.791 seconds (JVM running for 7.8) +17:38:39.423 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket.yml+DEFAULT_GROUP +17:38:39.424 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP, cnt=1 +17:38:39.424 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket.yml, group=DEFAULT_GROUP +17:38:39.425 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket-dev.yml+DEFAULT_GROUP +17:38:39.425 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP, cnt=1 +17:38:39.425 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket-dev.yml, group=DEFAULT_GROUP +17:38:39.426 [main] INFO c.a.n.c.c.i.ClientWorker - [addCacheDataIfAbsent,169] []- [fixed-192.168.8.146_32470] [subscribe] qiuguo-iot-box-websocket+DEFAULT_GROUP +17:38:39.426 [main] INFO c.a.n.c.c.i.CacheData - [addListener,92] []- [fixed-192.168.8.146_32470] [add-listener] ok, tenant=, dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP, cnt=1 +17:38:39.426 [main] INFO c.a.c.n.r.NacosContextRefresher - [registerNacosListenersForApplications,105] []- listening config: dataId=qiuguo-iot-box-websocket, group=DEFAULT_GROUP +17:38:39.527 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,232] []- new ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:38:39.529 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:38:47.937 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [filter,45] [fc06728f-1]- api start time:1695634727937 ip:192.168.8.246 method:GET url:/websocket/box param:{} headers:[Sec-WebSocket-Version:"13", Sec-WebSocket-Key:"RNV8SoN6lsGBwgOXWrdScQ==", Connection:"Upgrade", Upgrade:"websocket", firmwareVersion:"1.0.0", deviceType:"0", osVersion:"15", os:"android", sn:"QGBOX230919163545yS9", time:"1695106305000", signature:"11AEB264FB10CAA3E6A729B4F172088E", User-Agent:"Apifox/1.0.0 (https://apifox.com)", Sec-WebSocket-Extensions:"permessage-deflate; client_max_window_bits", Host:"192.168.8.175:8080"] +17:38:47.969 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [handle,69] []- 登录成功SN:QGBOX230919163545yS9 +17:38:47.978 [reactor-http-nio-2] INFO c.q.i.b.w.a.f.LogWebFilter - [lambda$filter$1,69] [fc06728f-1]- api end time:1695634727978, total time:41 +17:38:50.214 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,73] []- 设备端收到消息:{"sn":"QGBOX230919163545yS9","message":"打开灯和风扇"} +17:38:54.933 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$2,92] []- 收到SN:QGBOX230919163545yS9,消息打开灯和风扇 +17:39:19.098 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [addBeatInfo,81] []- [BEAT] adding beat: BeatInfo{port=8080, ip='172.26.32.1', weight=1.0, serviceName='DEFAULT_GROUP@@qiuguo-iot-box-websocket', cluster='DEFAULT', metadata={preserved.register.source=SPRING_CLOUD}, scheduled=false, period=5000, stopped=false} to beat map. +17:39:19.094 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$0,83] []- 未匹配到自定义命令,调用千问 +17:39:19.098 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,245] []- modified ips(1) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:39:19.099 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$null$1,89] []- 未匹配到自定义命令,调用千问 +17:39:19.100 [com.alibaba.nacos.client.naming.updater] INFO c.a.n.client.naming - [processServiceJson,271] []- current ips:(3) service: DEFAULT_GROUP@@qiuguo-iot-box-websocket@@DEFAULT -> [{"instanceId":"172.31.133.185#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.31.133.185","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"127.0.0.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"127.0.0.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000},{"instanceId":"172.26.32.1#8080#DEFAULT#DEFAULT_GROUP@@qiuguo-iot-box-websocket","ip":"172.26.32.1","port":8080,"weight":1.0,"healthy":false,"enabled":true,"ephemeral":true,"clusterName":"DEFAULT","serviceName":"DEFAULT_GROUP@@qiuguo-iot-box-websocket","metadata":{"preserved.register.source":"SPRING_CLOUD"},"ipDeleteTimeout":30000,"instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000}] +17:39:19.114 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] []- [HttpClientBeanHolder] Start destroying common HttpClient +17:39:19.114 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,145] []- [NotifyCenter] Start destroying Publisher +17:39:19.114 [Thread-37] WARN c.a.n.c.n.NotifyCenter - [shutdown,162] []- [NotifyCenter] Destruction of the end +17:39:19.115 [Thread-3] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] []- [HttpClientBeanHolder] Destruction of the end +17:39:22.123 [reactor-http-nio-2] INFO c.q.i.b.w.a.h.BoxWebSocketHandler - [lambda$handle$4,109] []- 设备断开连接SN:QGBOX230919163545yS9 +17:39:22.125 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,94] []- De-registering from Nacos Server now... +17:39:22.125 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [removeBeatInfo,101] []- [BEAT] removing beat: DEFAULT_GROUP@@qiuguo-iot-box-websocket:172.26.32.1:8080 from beat map. +17:39:22.125 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [deregisterService,260] []- [DEREGISTER-SERVICE] public deregistering service DEFAULT_GROUP@@qiuguo-iot-box-websocket with instance: Instance{instanceId='null', ip='172.26.32.1', port=8080, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='DEFAULT', serviceName='null', metadata={}} +17:39:22.129 [SpringApplicationShutdownHook] INFO c.a.c.n.r.NacosServiceRegistry - [deregister,114] []- De-registration finished. +17:39:22.129 [SpringApplicationShutdownHook] INFO c.a.n.client.naming - [shutdown,147] []- com.alibaba.nacos.client.naming.beat.BeatReactor do shutdown begin +17:41:07.288 [background-preinit] INFO o.h.v.i.util.Version - [,21] - HV000001: Hibernate Validator 6.2.5.Final +17:41:08.086 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket] & group[DEFAULT_GROUP] +17:41:08.099 [main] WARN c.a.c.n.c.NacosPropertySourceBuilder - [loadNacosData,87] - Ignore the empty nacos configuration and get it based on dataId[qiuguo-iot-box-websocket-dev.yml] & group[DEFAULT_GROUP] +17:41:08.100 [main] INFO o.s.c.b.c.PropertySourceBootstrapConfiguration - [doInitialize,134] - Located property source: [BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket-dev.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket.yml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-qiuguo-iot-box-websocket,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-application-dev.yml,DEFAULT_GROUP'}]