关于 AOP 切面导致 WebSocket 的 @ServerEndPoint 无法注入的问题

2022年7月23日13:16:16

关于AOP切面导致WebSocket的@ServerEndPoint无法注入的问题


前言

今天给我的毕业设计加上了AOP 日志拦截,结果导致了WebSocket 的报错。,错误信息为:

Failed to register @ServerEndpoint class: class pers.xuyijie.communityinteractionsystem.websocket.MyWebSocket$$EnhancerBySpringCGLIB
Caused by: javax.websocket.DeploymentException: Cannot deploy POJO class[pers.xuyijie.communityinteractionsystem.websocket.MyWebSocket$$EnhancerBySpringCGLIB

原因和解决方案

原因是因为WebServerContainer 里面的addEndPoint 方法里的annotation 为 null。关于 AOP 切面导致 WebSocket 的 @ServerEndPoint 无法注入的问题感谢 华阳余文乐https://blog.csdn.net/qq_15807785/article/details/83547978 ,上图是他的调试截图。

导致为 null 的原因是因为 aop 的@PointCut 注解和 Aop 自定义的@Log 注解,总之,aop 不能作用到 websocket 的文件,否则就会导致问题。

关于 AOP 切面导致 WebSocket 的 @ServerEndPoint 无法注入的问题
关于 AOP 切面导致 WebSocket 的 @ServerEndPoint 无法注入的问题
去掉 WebSocket 上的@Log,并确保@PointCut 的 execution 中的包路径不包含 WebSocket 的文件就可以了。

启动成功
关于 AOP 切面导致 WebSocket 的 @ServerEndPoint 无法注入的问题


  • 作者:繁华尽头满是殇
  • 原文链接:https://blog.csdn.net/qq_48922459/article/details/122665306
    更新时间:2022年7月23日13:16:16 ,共 659 字。