2018-09-07 11:48

new BackgroundProcess(...) 、bp.start() 这类在新建线程中是绝对不能传入 session、controller、request、response 这类参数的

解决办法是从 session、request、controller 拿到该拿的数据传到 BackgroundProcess 之中去

2018-09-07 11:45

不要在拦截器中新开线程执行 controller 方法, Controller 中有属性,其中的 request response 这类是会被 tomcat、jetty 随后接管的,开一个新线程,就有并发操作,数据立即混乱

2018-09-07 11:43

这个完全取决于对方返回的是什么数据, HttpKit.post(...) 只负发请求与取数据,完全不负责对方给你响应什么数据

找问题原因要有个大概的定位,将这类问题定位于 HttpKit 而不是对方的响应,这个偏离太远了

2018-09-07 10:46

不能自己定义, 默认是 19 秒,一般情况是够了

建议用用 OkHttp 这个 http 专用工具, jfinal 中的 HttpKit 只是一个极度简化的小功能

2018-09-06 22:40

@北流家园网 注意看一下 OracleDialect 中的两个方法 fillStatement(...) ,转调的底层的 fillStatementHandleDateType(...) 方法,而这个方法是下面这样的:

protected void fillStatementHandleDateType(PreparedStatement pst, List paras) throws SQLException {
for (int i=0, size=paras.size(); i Object value = paras.get(i);
if (value instanceof java.util.Date) {
if (value instanceof java.sql.Date) {
pst.setDate(i + 1, (java.sql.Date)value);
} else if (value instanceof java.sql.Timestamp) {
pst.setTimestamp(i + 1, (java.sql.Timestamp)value);
} else {
// Oracle、SqlServer 中的 TIMESTAMP、DATE 支持 new Date() 给值
java.util.Date d = (java.util.Date)value;
pst.setTimestamp(i + 1, new java.sql.Timestamp(d.getTime()));
}
} else {
pst.setObject(i + 1, value);
}
}
}

也就是说,会对 java.util.Date 以及它的子类进行判断,并最终转成了:
java.sql.Date、java.sql.Timestamp 这两个类型

并且是调用的 pst.setDate(...) 与 pst.setTimestamp(...),jfinal 3.4 版本在这方面应该是万无一失的,还请大家升级到 jfinal 3.4 多多反馈

2018-09-06 22:35

@北流家园网 jfinal 3.4 已经对 java.util.Date 自动转成了 java.sql.Timestamp 类型,应该是可以的,你用的哪个版本?

2018-09-06 20:41

@setygz 具体的代码要改成什么样子? 是不是改成下面:
ResultSet rs = dbMeta.getPrimaryKeys(conn.getCatalog(), conn.getSchema(), tableMeta.name);

由于我这里没有测试环境,麻烦帮忙测试一下

2018-09-06 20:32

@逗不逗 这些用法在文档中都有的,开发之前一定要先看看文档,jfinal 坚持极简设计,文档的内容本身就很少

2018-09-06 17:37

@Joe88 单步调试,看一下返回值的具体类型是什么?

注意要调试进入 record.getStr(...) 里面去

你也可以通过 Object ret = record.get(Sting) 得到 ret 变量,看 ret 是什么类型

2018-09-06 17:35

通过这行代码来获取:
getModel(Staff.class, "");

2018-09-06 17:33

用一个 static boolean isRuning 变量控制一下,当这个变量为 true 时,自己直接退出本次调度

2018-09-06 16:34

其实异常已经说得极其清楚了:
java.lang.ClassCastException: org.apache.catalina.util.ParameterMap cannot be cast to java.util.HashMap

2018-09-06 16:34

这个没有什么技巧的,把类型搞对就可以了,java 是强类型的,类型容不得乱来

jfinal 的 com.jfinal.core 包下面有类似的代码,大概在里头的 Injector 和 Converter 中

2018-09-06 16:29

代码有缺失在个人空间改一下这个贴子:
http://www.jfinal.com/my/feedback

改的时候注意看一下有一个 "代码语言" 的下拉框,选择 Java 语言再输入代码即可

2018-09-06 15:28

@Dull enjoy 中已经存在的 ClassPathSource 已经包含了你前面实现的 JarSource 功能,直接用就可以了,无需扩展