2020-09-20 17:05

@__ 问题应该是找到了,并不是 Cron4jPulgin 不执行,而是你的项目出现了 OutOfMemoryError 异常,JVM 已经不能正常工作了,定时任务不执行就再正常不过了

2020-09-20 17:00

补充一下,如果用 kill 杀掉进程,使用 -9 参数,无论是不是 daemon 线程,都强制关闭 JVM,这个是操作系统层面的行为,是 JVM 自己也无法控制的

2020-09-20 16:59

线程的关闭其实与 jfinal 无关,纯属 java 的知识范畴

在 java 知识体系中,如果 jvm 关闭的话,线程如果正在执行,并且是 "非daemon" 线程,jvm 会等待这个线程执行完以后再关闭

如果是 daemon 线程,jvm 在关闭的时候会立即关闭,不等待没有执行完的线程

就 jfinal 内部启动的线程来说,都确保了是 daemon 线程,所以,你只需要关心自己开启的线程是什么类型的即可

2020-09-20 16:55

@永字诀 同学的课程不错的,实力强,价格公道

2020-09-20 16:55

@山东小木 jfinal 社区国庆前后要上 app & coffee,这个才是未来,这个才能形成正向反馈循环,才可持续

以后,尽可能将一切都纳入 app & coffee

2020-09-20 16:53

@zeroabc resourcePath 配置成 / 是很危险的,配置文件都能获取到,解决就好,赞

2020-09-20 16:52

jfinal.com 是 jfinal 开源社区,除了我在这里与大家沟通以外,还有众多 jfinal 在这里交流

我小孩最近一周岁,回老家办宴请去了,最近没时间上网

2020-09-16 12:02

漏洞扫描工具,如果不扫点东西出来,它自己是很没面子的

专门做这一行业的公司与个人更是没面子。我在 2009 年时做过北科院一个政府项目,做完以后要拿到专门的一个机构去做这类漏洞检测的工作,人家很轻松就能给你弄出一堆报告来

最后,回到你碰到的这个问题,你需要让对方重现问题是发生的过程,然后你才好修复问题

站在 jfinal 的角度,jfinal 唯一向外提供的口子就是你手动添加路由以后开放的 action,所以是不可能发生你碰到的这种事:“似乎可以使用特制的URL读取Web服务器文档目录之外的远程主机上的任意文件”

然后是 undertow,这个我认为概率也不大,如果确实有,你得让对方给出具体的重现方法

2020-09-12 21:59

还有一个解决办法是,先找到以前用过的那些 cookie 的 name,然后用一个 jfinal 的全局拦截器,通过下面的代码删掉那些 cookie:
inv.getController().removeCookie(name);

2020-09-12 21:58

@rirai cookie 有一个过期时间,你这个网站的有些 cookie 的过期时间在几年以后,如果有人在你解决这个问题之前就访问过你的网站, cookie 会一直存在

cookie 是会随着每次请求一起发给你的服务端,异常就会一直有。这个时候已经与你的后端服务无关了,你的后端服务已经解决问题了

你得再观察几天,看是不是异常变少,如果访问者总是同一群人,异常会下降比较慢,如果后续是越来越多的新人访问,异常会逐步下降

2020-09-11 20:13

浏览下有关 ActiveRecordPlugin 的文档, 主要就是 new 的时候传点参,第一个参是 configName,该变量与数据源绑定对于 model 的使用,数据源是自动识别的

对于 Db.find/query 等 API 默认使用 "主数据源",使用别的数据源这样用:
Db.use(其它数据源/configName).find(...);

2020-09-11 20:11

关键是 AutoTableBindPlugin 这个里头不知道干了啥,这个不是 jfinal 官方提供的,jfinal 官方早就提供了生成器,自动生成 Model、BaseModel、MappingKit 等等, AutoTableBindPlugin 完全没有必要

回到具体问题,异常关键是:Config not found by configName: gps_db

这个异常出现在你代码中的地点在:OneMinutesJob.execute(OneMinutesJob.java:50)

上面这行代码的第 50 行,使用了 Db.use("gps_db"), 而这个 gps_db 根本就不存在

那么如何让这个东东存在呢? 很简单,在 new ActiveRecordPlugin 的时候,第一个参数就是了:
ActiveRecordPlugin arp = new ActiveRecordPlugin("gps_db", 其它参数在此);

最后,一定要先稍微看下文档,节省大量时间

2020-09-11 19:33

输出信息绝大部分是 INFO,并不是异常

只有一个是 WARN:
[Thread: XNIO-1 task-1]-[WARN]-[com.jfinal.core.ActionHandler.handle()]: 404 Action Not Found:

这个只是一个 404 ,url 不对而已,整体上没看出有任何问题

你将日志级别调整到 WARN,就不会输出 INFO 了

2020-09-11 10:16

要知道,业务有可能被很多地方调用,而要保障所有地方调用时都记得用上拦截器,这个是容易出问题的

所以,我所有项目全部在业务方法内用的 :
Db.tx () -> {
这里是数据库操作
});