2019-10-17 17:12

空指针问题通过单步调试找到为 null 值的对象就可以定位解决了

我估计是你的 ActiveRecordPlugin 未启动,存储过程用法参考这里:
https://www.jfinal.com/doc/5-16

2019-10-17 16:43

可能是 jetty 不支持这类数据的 decode,建议使用 jfinal-undertow:
https://www.jfinal.com/doc/1-2

开发、打包、部署一体化多爽

2019-10-17 15:54

@代号而已 单步调试弄清楚重复提交的机制,解决掉它

2019-10-17 14:53

jfinal 是 web mvc + orm 框架,在理论上来说,实现 RPC 与其它类似框架并没有不同

挑选一个你钟意的 RPC 或者 json 请求机制的第三方整合进 jfinal 即可。整合的过程先学会使用 jfinal 的 AOP、Inject 功能,这个是整合的关键

可以参考一下 @海哥 的 jpress、jboot ,他的这两个项目在 jfinal 基础上集成了这些功能:
https://gitee.com/fuhai/jboot
https://gitee.com/fuhai/jpress

2019-10-17 14:48

@ben0133 补充: 使用 JDK 自带的 visual VM 检查一下项目的资源回收情况,访问各个资源,看内存回收是否正常,线程数据量的增减是否正确

2019-10-17 14:36

异常信息是什么,此外,检查一下有没有资源泄漏的相关代码,例如,搜索一下整个项目使用关键字:
getConnection()

如果自己通过 getConnection() 获取过 Connection 对象,一定要在 finally 块中关闭它:
try {
...
} finally {
connection.close();
}

2019-10-17 12:47

按升级文档就可以升级了,需要改的地方都有说明

再一个,可以在首页右侧下载 changelog.txt,这一两年的新版本所做的改变在 chagelog 中有详细说明

jfinal 经过 8 年多的迭代,已经十分成熟稳定,所以近一两年的改进主要在 jfinal 内部,对于用户原有的使用习惯影响很小很小

2019-10-17 11:17

需要先转成 Model,并且该 Model 是通过生成器生成了 setter 方法的 ,假定 Model 名是 Article 可以通过如下代码存入数据库:
Article article = FastJson.getJson().parse(jsonString, Article.class);
article.save();

如果 jsonString 中的数据与 Article 的对应关系并不是严格对应字段的,可以通过 Map 作为中间转换:
Map map = FastJson.getJson().parse(jsonString, Map.class);
Article article = new Article();
article.setXxx(map.get(xxx));
article.setYyy(map.get(yyy));
article.save();

2019-10-17 10:43

@xspycsj 用 tomcat 就要将项目完全当成是一个普通的 java web 项目,启动方式与其它的 java web 方式完全一样

那么就不需要用 jfinal 提供的 main 方法启动,一定要看文档中有关说明:
https://www.jfinal.com/doc/1-11

用传统方式启动的时候,删掉 jetty-server.jar

2019-10-16 19:05

@xspycsj 参考文档第一章,里面讲了 tomcat、IDEA、jetty 这类问题

2019-10-16 17:26

@xspycsj 注意要将 class path 指向 WEB-INF/classes,否则找不到类,也找不到 web.xml

这纯粹是一个 IDEA 的使用问题,你运行其它类型的 java web 项目同样会面临这个问题

2019-10-16 17:19

出现的 404 界面是 jetty 的, 证明你的项目未真正启动,检查 web.xml 中的配置

验证我前面的说法,可以在 SystemConfig.java 中的任意方法中用 System.out.println(...) 输出一行提示,启动的时候这个提示不可能出现,证明你的应用并未启动

当然,最好的验证办法是在 SystemConfig.java 中的方法中设置断点,单步调试

2019-10-16 17:17

@小剑魔 这个是十分罕见的纯 eclispe 问题,建议不要浪费时间折腾,重新解压安装 eclipse 完事

折腾这种 eclipse 的 bug 没有意义

2019-10-16 15:14

maven 已成为 java 开发应该掌握的基本技能,有些常用的插件是必须要掌握的,列如博主分享的 maven-compiler-plugin

还有一些重要的也要熟悉,例如 jfinal 打包推荐的 maven-assembly-plugin。

jfinal 调研了大量的打包方法与插件,maven-assembly-plugin 是最好的,并且这个插件是 maven 官方提供的,用户量大且一直在迭代发展,可靠性有保障

2019-10-16 14:59

@任小伊roy 类型不对而已,单步调试了解一下具体类型,然后合理地使用对象类型来转换

如果还是解决不了,大不了将其中的数据读出来再放到新的 HashMap 中:
Map ret = new HashMap();
for (Iterator it=super.getParameterMap().entrySet().iterator(); it.hasNext();) {
Entry e = it.next();
ret.put(e.getKey(), e.getValue();
}