关于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。感谢 华阳余文乐https://blog.csdn.net/qq_15807785/article/details/83547978 ,上图是他的调试截图。
导致为 null 的原因是因为 aop 的@PointCut
注解和 Aop 自定义的@Log
注解,总之,aop 不能作用到 websocket 的文件,否则就会导致问题。
去掉 WebSocket 上的@Log
,并确保@PointCut 的 execution 中的包路径不包含
WebSocket 的文件就可以了。
启动成功
声明:本站所有文章,如无特殊说明或标注,均为网络收集发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。