2020-07-16 17:01

有个很重要的事情, 参数注入本质还是用的 getModel 与 getBean ,所以如果你用 getModel 工作正常,但参数注入不正常,只有一种可能, 那就是你的参数注入其实用的是下面这个:
getBean(...);

而不是用的 getModel

那么问题变成了, jfinal 的参数注入在什么情况下调用 getModel,什么情况下调用 getBean?

答案是如果你的 Pay.java 实现了 com.jfinal.plugin.activerecord.IBean 这个接口,就会使用 getBean,否则如果继承了 Model 就会使用 getModel,其它情况使用 getBean, jfinal 中的相关源代码如下:

if (com.jfinal.plugin.activerecord.IBean.class.isAssignableFrom(typeClass)) {
//实现了IBean接口,优先按BeanGetter来处理。
return new BeanGetter(typeClass, parameterName);
}
else if (com.jfinal.plugin.activerecord.Model.class.isAssignableFrom(typeClass)) {
return new ModelGetter(typeClass, parameterName);
}
else {
return new BeanGetter(typeClass, parameterName);
}

那么问题就可以最终确定为,你在表单域中的 order_id 没有对应到相应的 setter 方法

2020-07-16 16:51

@永字诀 这个是正解

2020-07-15 23:36

@BTMTimor 没仔细看到问题, @xialinlin 同学的回复是对的

2020-07-15 18:15

@七五热 注意要调用 druidPlugin.stop() 与 arp.stop(), 才能释放资源

jfinal 之下这两个方法是框架自动调用的

2020-07-15 17:31

@hjk0205 只要是客户端在通信过程中主动断开连接就可以重现该问题了

服务端除了忽略这类异常以外,没有别的什么办法,毕竟客户端的事情服务端无法控制

2020-07-15 17:27

@山东小木 这个需求很弱,没有实现

少部分需求扩展一下挺好

2020-07-14 22:35

@hjk0205 用户在使用小程序时,强制关闭退出就可以办到

andriod 手机在调出程序列表时,可以左右或者上下划动关闭应用

2020-07-14 22:33

只有当前线程会 sleep,多线程并不会串行执行,原因应该是你调试方法不当

如果你用的是 eclipse ,在 sleep 代码处设置一个断点,在个请求到达你上面那个 sleep 代码以后,在 debug 小窗中会出现多个被挂起的线程,点击不同的挂起线程,可以在 sleep 以后继续调试

这个问题必然是与 jfinal 毫无关系的, jfinal 自然是无法干预让 Thread.sleep(...) 在多线程下串行的, 就是想干预也办不到

2020-07-14 22:28

@石头809155072 重启的时候并不一定耽误正在运行的任务

你有使用 linux kill 命令的时候,不要带上 -9 等等参数, JVM 的停止是会等待正在运行的线程执行完毕的

2020-07-14 17:24

@錢勢惘導 原先是与 hget 不一样,现在按你的需求改掉了,你反而又不希望这么来用,不知道你的需求到底是什么

2020-07-14 17:21

如果希望不停服重启,用一个 nginx + 多个 jfinal 做一个集群就可以了,共享数据放在数据库里头,该开启事务开事务,保障数据一致性就可以了

2020-07-14 17:18

解决方案已经有过多次说明:
https://jfinal.com/feedback/1925
https://jfinal.com/feedback/7419

2020-07-14 16:31

enjoy 内部是没有进行过大小写转换的

从你的截图判断,你认为是 #include 指令中的 _adminForm.html 变成了 _AdminForm.html

那么简单验证一下,将 _adminForm.html 改为 abc.html, 看看报出的异常会不会仍然是 _AdminForm.html 找不到,大概率异常信息仍然没变

这样就排除了问题是出在 #include("_adminForm.html") 这个地方的可能

用排除法,逐步逼近定位问题

当然 , @杜福忠 建议的搜索办法是最快捷的,可以直接搜索 _AdminForm 更精准