javascript - 如何使用springboot解决聊天框“消息处理方法未处理异常”的问题
问题描述
我正在尝试在 java 中使用 springboot+thymeleaf 构建聊天框。从 UI 向控制器发送调用时出错。每当我输入用户名并单击发送时,都会出现错误提示Unhandled exception from message handler method
。我已经从网上下载了聊天框代码,并将代码与我现有的项目整合在一起。如果我独立运行项目,它工作得很好,但如果我与我的项目集成,它会给我错误。
我的 .js 具有以下调用 chat.addUser 的方法。
主.js
function onConnected() {
stompClient.subscribe('/topic/publicChatRoom', onMessageReceived); // Subscribe to the Public Topic
// Tell your username to the server
stompClient.send("/app/chat.addUser",
{},
JSON.stringify({sender: username, type: 'JOIN'})
)
connectingElement.classList.add('hidden');
}
我的 WebSocketChatController 看起来像这样
WebSocketController.java
@MessageMapping("/chat.addUser")
@SendTo("/topic/publicChatRoom")
public ChatMessage addUser(@Payload ChatMessage chatMessage,SimpMessageHeaderAccessor headerAccessor) {
// Add username in web socket session
System.out.println("In addUser");
headerAccessor.getSessionAttributes().put("username",chatMessage.getSender());
return chatMessage;
}
在这个控制器中,我无法调用("/chat.addUser"
)。当我输入用户名时,我的输出是这样的。
输出:
2019-05-30 17:11:50,228 [34mINFO [0;39m [-8081-exec-6] [36mcom.bmc.app.config.WebLogAspect [0;39m : RESPONSE : chat
2019-05-30 17:11:50,228 [34mINFO [0;39m [-8081-exec-6] [36mcom.bmc.app.config.WebLogAspect [0;39m : SPEND TIME : 1
2019-05-30 17:11:50,228 [34mINFO [0;39m [-8081-exec-6] [36mcom.bmc.app.config.WebLogAspect [0;39m :
2019-05-30 17:12:11,853 [34mINFO [0;39m [-8081-exec-2] [36mc.b.a.listener.HttpHandshakeInterceptor [0;39m : Call beforeHandshake
2019-05-30 17:12:11,855 [34mINFO [0;39m [-8081-exec-2] [36mc.b.a.listener.HttpHandshakeInterceptor [0;39m : Call afterHandshake
2019-05-30 17:12:11,863 [34mINFO [0;39m [undChannel-7] [36mc.b.a.config.WebSocketChatEventListener [0;39m : Received a new web socket connection
2019-05-30 17:12:14,899 [1;31mERROR[0;39m [ndChannel-23] [36m.WebSocketAnnotationMethodMessageHandler[0;39m : Unhandled exception from message handler method
java.lang.NullPointerException: null
at com.bmc.app.config.WebLogAspect.doBefore(WebLogAspect.java:33) ~[classes/:na]
at jdk.internal.reflect.GeneratedMethodAccessor238.invoke(Unknown Source) ~[na:na]
解决方案
推荐阅读
- python - Python 崩溃,进程以退出代码 -1073741819 (0xC0000005) 完成
- javascript - 使用 JavaScript 的 WP REST API 发布状态
- javascript - Paypal - 在弹出窗口中授权重定向父窗口而不是弹出窗口
- javascript - 如何在javascript上为图像添加页脚?
- java - GAE 应用程序日志尾部包含应用程序的日志,而不仅仅是 http 请求日志
- java - (错误)无法找到或加载主类
- python - 无法使用python发送http请求,只能发送到https
- r - 提取字符之间的字符串
- docker - 是仅用于单个 Docker 文件或多个 Docker 文件的 Docker Hub 存储库
- c++ - 只有 CascadeClassifier 会产生未定义的引用错误