多数据源切换会触发项目重新加载

config代码:

微信截图_20201020224259.png

调用的地方:

微信图片_20201020224332.png

运行以后,  第一次调用:

微信截图_20201020224402.png

运行以后,  第二次调用,显示报找不到configName, 然后继续触发loading changes.

微信截图_20201020224422.png


请问大佬,是我代码写的不对,还是其他什么问题,我是在想不到哪里不对

评论区

lyh061619

2020-10-21 10:13

用上定时器了吧?在 UndertowServer.create(MyConfig.class).addHotSwapClassPrefix("com.xm2012.wms.timer.FhkTimer.") 支持。

tuxming

2020-10-21 10:24

@lyh061619 是跑的定时任务,但是我貌似没有用UndertowServer,我就是普通maven项目。木有你说的这个类

lyh061619

2020-10-21 10:25

@tuxming 那你的loading changes从哪里来?

tuxming

2020-10-21 10:32

@lyh061619 我不知道, 我只知道,我修改代码的时候,会触发这个,第一次遇到改变数据源的时候也会触发这个。

lyh061619

2020-10-21 10:39

@tuxming 用什么容器?其次是修改数据源触发时,是否存热加载导致数据源加载失败情况;再次在你修改其他项目代码时触发是否也会存在热加载导致数据源加载失败,重现下问题,最后在修改数据源存在触热加载失败情况,最后尝试下冷启动(下直接启容器)看问题是否得到解决。 ,

tuxming

2020-10-21 10:53

@lyh061619 在eclipse开发模式下面,容器就是自带的jetty, 热加载没有失败,只是触发了,但是触发了,任务就不会跑了, 现在的问题是,他不能触发热加载,经过再次测试,使用debug模式跑不会触发,使用正常模式运行就会触发热加载。

lyh061619

2020-10-21 11:12

@tuxming 坚持用Jetty,目前Jfinal Jetty设计你只能copy下JettyServer.java源代码中的 doStart方法下添加webApp.getSystemClasspathPattern().add("com.xm2012.wms.timer.FhkTimer."),支持你的定时器类支持jfinal-jetty热加载。

tuxming

2020-10-21 11:22

那能部署吗?其实本地测试不能正常跑,我不介意的,主要是我部署以后要没问题,我部署的是tomcat. 按你这么说我部署到服务器上面跑一下,看看会有什么问题。

tuxming

2020-10-21 14:36

@lyh061619 部署环境没有这样的问题,只能说。。。好幸运