开发者社区> 问答> 正文

JFinal热加载异常?报错

@JFinal 你好,想跟你请教个问题:


项目启动正常,然后热加载的时候重新加载
configRoute
会报错 The controllerKey already exists

断点Routes map 在热加载的时候,map里面的数据没有重置,会出现如上异常。

疑问:难道热加载不先清掉Routes,然后重新加载一遍吗?

上面用的是JFinal1.3
另外分别尝试了之前JFinal1.1+JFinal1.3的Demo工程也出现了上述问题。

@绝望的八皮@龙影@Mike_Liu

展开
收起
爱吃鱼的程序员 2020-06-22 19:53:31 528 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    从没碰到过这种情况,在 com.jfinal.core.ActionMapping.buildActionMapping()方法的第一行加一句mapping.clear();试试看回复<aclass='referer'target='_blank'>@JFinal:我知道不是JFinal要求的,但是不这么放不是会出现热加载异常问题吗?回复<aclass='referer'target='_blank'>@杰文:不是JFinal要求的,是JavaWeb项目规范要求的,BAE要求放项目根目录下属于他自己的规范回复<aclass='referer'target='_blank'>@JFinal:刚才了解到BAE环境lib要求放在工程根目录,这个和JFinal要求的放在WebRoot/WEB-INF/lib会有冲突吗?Project——src——lib——WebRoot——WEB-INF——web.xml回复<aclass='referer'target='_blank'>@杰文:JFinal通过jetty启动了项目,这个启动过程是可以设置外部jar包的,与普通java项目一样。但jetty启动以后又会当成是web项目去WEB-INF下面去找jar,所以这两种方式同时上可能有问题,具体原因不明回复<aclass='referer'target='_blank'>@JFinal:在经过N轮尝试之后发现最终原因是我将lib放在了项目下面,然后手工加载,并没有将lib放到WEB-INF下面,导致了这一系列的问题。这个是必须放在WEB-INF下面吗?心有力而余不足~ ClassLoader方面的东西我接触的还是有点少 嘻。哈哈:)不可能吧,你都整了一个项目了,那你启动的时候没有异常过??
    我第一次整JFinal1.1的时候也没遇到过,诡异的是,昨天把,之前正常的,拿出来测试居然都不正常了。不解。。我曾经遇到过这个问题。。无解中。我现在是百发百中,每次重新加载都这样,连八皮大神都无解,坐等<aclass='referer'target='_blank'>@JFinal

    我也遇到这个问题,这个应该就是classloder的问题 我是引入外部的Jerrty和Jfinal1.4热启动就会抱这个错

    解决方法是把外部的Jfinal放到Lib下面

    2020-06-22 19:53:47
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题) 立即下载
Java Spring Boot开发实战系列课程【第15讲】:Spring Boot 2.0 API与Spring REST Docs实战 立即下载
Java单元测试实战 立即下载