Liubsyy / HotSecondsIDEA

HotSeconds是一款Java远程热部署的插件,可实现秒级一键化热更新。插件分为HotSecondsClient(IDEA热部署插件)和HotSecondsServer(服务端javaagent热更新插件),可以热更新java和常用配置文件,也支持常用框架(Spring,MyBatis)的热更新,相对传统部署可节省大量时间提高开发效率。
GNU General Public License v2.0
369 stars 48 forks source link

ERROR classReload()怎么处理呢 #41

Closed qq852660058 closed 9 months ago

qq852660058 commented 10 months ago

热部署功能都正常,服务器端日志有异常,顺便问一下jar启动的项目mybatis的xml文件如何热加载,远程目录填写jar同级目录吗,试了一下有异常热加载不到,扩展插件以配置

HOTSECONDS: 07:11:44.633 INFO []热更新类:jnpf.controller.ContractController,size=4438 HOTSECONDS: 07:11:44.633 RELOAD Reloading classes [jnpf.controller.ContractController] (autoHotswap) HOTSECONDS: 07:11:44.634 ERROR classReload() exception No such field java.beans.Introspector.declaredMethodCache on null. HOTSECONDS: 07:11:44.634 ERROR classReload() exception class java.io.ObjectStreamClass$Caches$1 cannot be cast to class java.util.Map (java.io.ObjectStreamClass$Caches$1 and java.util.Map are in module java.base of loader 'bootstrap'). HOTSECONDS: 07:11:44.634 ERROR flushClassInfoCache() exception Unable to make field private static final com.sun.beans.util.Cache com.sun.beans.introspect.ClassInfo.CACHE accessible: module java.desktop does not "opens com.sun.beans.introspect" to unnamed module @1c4af82c. HOTSECONDS: 07:11:44.839 INFO 热部署jnpf.controller.ContractController成功

qq852660058 commented 10 months ago

有没有交流群啥的,有问题不太好交流哦

Liubsyy commented 10 months ago

这个报错是java9以上的模块化限制导致,添加jvm参数--add-opens java.desktop/com.sun.beans.introspect=ALL-UNNAMED即可。另外mybatis热更新主要靠的是上传文件后触发刷新缓存的逻辑,所以只要随便上传个地方就能触发。交流群过段时间可以考虑建一个,但是我不一定会时时刻刻去盯着消息,效果和建issue差不了多少。

qq852660058 commented 10 months ago

@Liubsyy 热部署mybatis的xml ide返回成功,日志里报错了 image

Liubsyy commented 10 months ago

这个异常可以忽略,你看看生效没

qq852660058 commented 10 months ago

@Liubsyy 生效了谢谢