You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
日志如下:
`2024-09-03T10:11:12.259+08:00 ERROR 59184 --- [cTaskExecutor-1] .w.s.a.s.StandardWebSocketHandlerAdapter : Closing session due to exception for StandardWebSocketSession[id=25a23ce8-ad54-05a6-b72c-20dc16edd936, uri=null]
java.lang.NullPointerException: Cannot invoke "com.mikuac.shiro.dto.action.common.ActionList.getData()" because the return value of "com.mikuac.shiro.core.Bot.getGroupList()" is null
at com.cold.flatfish.Initializer.online(Initializer.java:116) ~[!/:0.5.2-ALPHA]
at com.mikuac.shiro.adapter.WebSocketClientHandler.afterConnectionEstablished(WebSocketClientHandler.java:75) ~[shiro-2.3.1.jar!/:na]
at com.mikuac.shiro.adapter.WebSocketClientHandler.handleTextMessage(WebSocketClientHandler.java:103) ~[shiro-2.3.1.jar!/:na]
at org.springframework.web.socket.handler.AbstractWebSocketHandler.handleMessage(AbstractWebSocketHandler.java:43) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.handler.WebSocketHandlerDecorator.handleMessage(WebSocketHandlerDecorator.java:75) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.handler.LoggingWebSocketHandlerDecorator.handleMessage(LoggingWebSocketHandlerDecorator.java:56) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.handleTextMessage(StandardWebSocketHandlerAdapter.java:113) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:84) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:81) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:390) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:484) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:284) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:130) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameClient.processSocketRead(WsFrameClient.java:95) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameClient.startInputProcessing(WsFrameClient.java:52) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServerRecursive(WsWebSocketContainer.java:466) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:179) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.springframework.web.socket.client.standard.StandardWebSocketClient.lambda$executeInternal$0(StandardWebSocketClient.java:175) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.util.concurrent.FutureUtils.lambda$toSupplier$0(FutureUtils.java:74) ~[spring-core-6.1.11.jar!/:6.1.11]
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
详细描述
环境:Ubuntu 24.04 LTS (GNU/Linux 6.8.0-41-generic x86_64)
Java 版本:
openjdk 21.0.4 2024-07-16
OpenJDK Runtime Environment (build 21.0.4+7-Ubuntu-1ubuntu224.04)
OpenJDK 64-Bit Server VM (build 21.0.4+7-Ubuntu-1ubuntu224.04, mixed mode, sharing)
OneBot协议实现:
Lagrange.OneBot
Shiro版本:2.3.1
为了在机器人上线时更新机器人所在的所有群的信息并获取机器人自身角色,在Core Event中重写了online(Bot bot)方法,并在其中使用了如下代码获取群列表:
List<GroupInfoResp> groupInfos = bot.getGroupList().getData();
编译运行后日志显示该行代码中getGroupList()返回了null
java.lang.NullPointerException: Cannot invoke "com.mikuac.shiro.dto.action.common.ActionList.getData()" because the return value of "com.mikuac.shiro.core.Bot.getGroupList()" is null
at com.cold.flatfish.Initializer.online(Initializer.java:116) ~[!/:0.5.2-ALPHA]
at com.mikuac.shiro.adapter.WebSocketClientHandler.afterConnectionEstablished(WebSocketClientHandler.java:75) ~[shiro-2.3.1.jar!/:na]
at com.mikuac.shiro.adapter.WebSocketClientHandler.handleTextMessage(WebSocketClientHandler.java:103) ~[shiro-2.3.1.jar!/:na]
at org.springframework.web.socket.handler.AbstractWebSocketHandler.handleMessage(AbstractWebSocketHandler.java:43) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.handler.WebSocketHandlerDecorator.handleMessage(WebSocketHandlerDecorator.java:75) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.handler.LoggingWebSocketHandlerDecorator.handleMessage(LoggingWebSocketHandlerDecorator.java:56) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.handleTextMessage(StandardWebSocketHandlerAdapter.java:113) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:84) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:81) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:390) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:484) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:284) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:130) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameClient.processSocketRead(WsFrameClient.java:95) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsFrameClient.startInputProcessing(WsFrameClient.java:52) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServerRecursive(WsWebSocketContainer.java:466) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:179) ~[tomcat-embed-websocket-10.1.26.jar!/:na]
at org.springframework.web.socket.client.standard.StandardWebSocketClient.lambda$executeInternal$0(StandardWebSocketClient.java:175) ~[spring-websocket-6.1.11.jar!/:6.1.11]
at org.springframework.util.concurrent.FutureUtils.lambda$toSupplier$0(FutureUtils.java:74) ~[spring-core-6.1.11.jar!/:6.1.11]
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
2024-09-03T10:11:12.262+08:00 DEBUG 59184 --- [cTaskExecutor-1] o.s.w.s.adapter.NativeWebSocketSession : Closing StandardWebSocketSession[id=25a23ce8-ad54-05a6-b72c-20dc16edd936, uri=null]`
使用wscat发送get_group_list请求结果如下(隐藏了QQ号及群号):
`wscat -c ws://127.0.0.1:8081/websocket
Connected (press CTRL+C to quit)
< {"sub_type":"connect","meta_event_type":"lifecycle","time":1725329292,"self_id":,"post_type":"meta_event"}
< {"interval":50000,"status":{"app_initialized":true,"app_enabled":true,"app_good":true,"online":true,"good":true},"meta_event_type":"heartbeat","time":1725329292,"self_id":,"post_type":"meta_event"}
预期结果
返回群列表
当前结果
返回了null
在最新的RELEASE版本中能否复现?
是
复现方法
在online(Bot bot)中使用bot.getGroupList()
The text was updated successfully, but these errors were encountered: