记一次Cannot deploy POJO class [xxx$$EnhancerBySpringCGLIB$$xxx]的错误

2024-04-03 09:36

本文主要是介绍记一次Cannot deploy POJO class [xxx$$EnhancerBySpringCGLIB$$xxx]的错误,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近项目上需要使用websocket做服务端,那好说啊,直接springboot集成的websocket

引入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><version>2.7.12</version>
</dependency>

配置类

@Configuration
public class WebsocketConfig {@Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}
}

wsServer

@Component
@Slf4j
@ServerEndpoint("/ws/{id}")
public class WebsocketServer {/*** 在线的连接*/private Map<String, Session> onlineSessionMap = new ConcurrentHashMap<>();@OnOpenpublic void onOpen(@PathParam("id") String id, Session session) {log.info("WebSocket连接成功,id = {}", id);onlineSessionMap.put(id, session);}@OnClosepublic void onClose(@PathParam("id") String id, Session session) {log.info("WebSocket连接关闭,id = {}", id);onlineSessionMap.remove(id);}@OnMessagepublic void onMessage(String message, Session session) {log.info("WebSocket接收到客户端消息:{}", message);}@OnErrorpublic void onError(Session session, Throwable error) {log.error("WebSocket发生错误,错误信息为:{}", error.getMessage());}public void sendMessage(String id, String message) {Session session = onlineSessionMap.get(id);if (session == null) {log.error("WebSocket发送消息失败,未找到对应的连接,id = {}", id);return;}// 异步发送消息try {session.getAsyncRemote().sendText(message);log.info("WebSocket发送消息成功,id = {},message = {}", id, message);} catch (Exception e) {log.error("WebSocket发送消息失败,错误信息为:{}", e.getMessage());}}
}

本来以为简简单单搞定,准备启动,结果...

Cannot deploy POJO class [com.xxx.xxx.xxx.WebsocketServer$$EnhancerBySpringCGLIB$$e1de9f9b] as it is not annotated with @ServerEndpoint

wtf??

之前没遇到过这种情况啊,没事 我有谷歌

看了下网上的情况 好像说因为这个类被代理了,追了下源码,确实是这样的

那好说啊 直接全局搜索 @Aspect

结果发现项目中的aop都是通过注解去切的 那这是怎么回事,明明我这个类也被动态代理了

此时我也快将谷歌翻烂了,仍然找不到办法解决

等一下? 会不会是其他的AOP,比如某些框架的 @Aspect 搜不到,那我换个搜法 

直接全局搜索 pointcut

这时我看到这样一个配置文件

Druid数据监控的数据监控啊! TMD甘

问题找到了 可是怎么降这个包排除呢

<property name ="patterns">

直接按住command 点击patterns

进入了方法

再点击this.patterns 

思路顿时明了了

直接在下面加一个 排除ws的包

启动成功

这篇关于记一次Cannot deploy POJO class [xxx$$EnhancerBySpringCGLIB$$xxx]的错误的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/872550

相关文章

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Python中ModuleNotFoundError: No module named ‘timm’的错误解决

《Python中ModuleNotFoundError:Nomodulenamed‘timm’的错误解决》本文主要介绍了Python中ModuleNotFoundError:Nomodulen... 目录一、引言二、错误原因分析三、解决办法1.安装timm模块2. 检查python环境3. 解决安装路径问题

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

Pycharm安装报错:Cannot detect a launch configuration解决办法

《Pycharm安装报错:Cannotdetectalaunchconfiguration解决办法》本文主要介绍了Pycharm安装报错:Cannotdetectalaunchconfigur... 本文主要介绍了Pycharm安装报错:Cannot detect a launch configuratio

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误