向客户端发送消息的代码如下
public void sendMessage(String orderId,String message){
try {
if (StringUtils.isEmpty(orderId)) {
throw new IOException("后台错误,请联系管理员");
}
WebSocketClient webSocketClient =new WebSocketClient();
webSocketClient.setUri("ws://localhost:2000/websocket/1");
// WebSocketClient webSocketClient = webSocketMap.get(orderId);
AdminOrderManagerVO adminOrderManagerVO = new AdminOrderManagerVO();
adminOrderManagerVO.setSize(8);
adminOrderManagerVO.setPage(1);
IPage<OrderList> orderListIPage =
orderListService.adminSelectOrderListByPage(adminOrderManagerVO);
String s = orderListIPage.toString();
if(webSocketClient!=null){
webSocketClient.getSession().getBasicRemote().sendText(s);
}
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e.getMessage());
}
}
在Page orderListIPage = orderListService.adminSelectOrderListByPage(adminOrderManagerVO);这一行中报错,而且无法进入adminSelectOrderListByPage这个方法。报错如下:
2022-04-04 09:54:18,764 -用户错误:1649036931800158,原因:Cannot invoke "com.xjc.leleservice.OrderListService.adminSelectOrderListByPage(com.xjc.vo.AdminOrderManagerVO)" because the return value of "com.xjc.leleservice.impl.WebSocketService._jr$ig$orderListService(Object)" is null
2022-04-04 09:54:18,766 -----------------------------------------------------------------------------
2022-04-04 09:54:18,766 -1649036931800158用户退出,当前在线人数为:2
2022-04-04 09:54:18,766 -收到新的订单:1649036931800158,报文:订单来了
java.lang.NullPointerException: Cannot invoke "com.xjc.leleservice.OrderListService.adminSelectOrderListByPage(com.xjc.vo.AdminOrderManagerVO)" because the return value of "com.xjc.leleservice.impl.WebSocketService._jr$ig$orderListService(Object)" is null
at com.xjc.leleservice.impl.WebSocketService.sendMessage(WebSocketService.java:134)
at com.xjc.leleservice.impl.WebSocketService.onOpen(WebSocketService.java:61)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.doOnOpen(PojoEndpointBase.java:69)
at org.apache.tomcat.websocket.pojo.PojoEndpointServer.onOpen(PojoEndpointServer.java:48)
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.init(WsHttpUpgradeHandler.java:136)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:942)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)
这个adminrderMangerVO中有值,如下图
这个报错如何解决
进那个方法看看方法里用了哪些数据,你的VO里只有page和size,其他都为空