2019-12-07 00:05

undertow.resourcePath 配置的路径,如果是目录则会被检测路径是不是真的存在,存在则会生效,否则无效

如果配置是 "classpath:" 前缀,则不会检测路径是否真的存在

另一个知识点:PathKit.getWebRootPath() 得到的路径是 undertow.resourcePath 配置的值中第一个存在的目录

最后,原贴可以一直修改,如果需要追加回复代码的话,可以在个人空间修改原贴

2019-12-07 00:01

@巨轮深港啊 如果绝大部分 action 都只接受 GET 请求,可以将 GET 拦截器配置成全局拦截器:
public void configInterceptor(Interceptors me) {
me.add(new GET());
}

然后在极少需要 POST 请求的地方通过 @Clear 注解将其放开,例如:
@Clear(GET.class)
public void save() {
service.save(getBean(...));
renderJson();
}

这样就可以将代码量最少化

2019-12-06 23:58

@巨轮深港啊 在配置路由的地方往 controllerKey 中加前缀

2019-12-06 23:57

session 已失效,所以,不能再调用它的 session.invalidate() 方法

虽然获取到的不同 null, 但是 session 中的有效时间可能已经过去了,例如:
1:你的 session 过期时间是下午 1:30
2:你当前线程在下午 1:29 分 59 秒的时候获取了 session,该值不为 null
3:你当前线程在执行 session.invalidate() 的时候,时间又向后推移了,已经超过下午 1:30,所以必然会出现你碰到的异常

如果一定要调用 invalidate() 方法的话,可以用一个 try catch 处理一下

2019-12-06 23:56

@AI-wen 这就很奇怪了,应该是有 0 前缀的,你将 0 改成 ABC 看看。 我估计你数据源弄错了,或者数据记录不对

2019-12-06 23:55

不要将图片数据存放在数据库,只存文件名与路径即可

2019-12-06 23:53

jfinal-weixin 是很早启动的微信公众号 SDK,经过多年的迭代发展已经很稳固可靠,更新自然也就少了

使用 mvn clean install 可以安装到本地使用最新版本

2019-12-06 23:51

有过第一次经验,以后就顺利了,谢谢分享,赞

2019-12-06 23:50

@spKevin 这里的麻烦在于: jfinal 也无法知道是什么类型,不好转

2019-12-06 23:46

挺好的分享,如果走单例模式,这个扩展对性能没有影响,赞

2019-12-06 23:44

jfinal 提供了一个 AnsiSqlDialect,理论上来说支持任意支持 ANSI Sql 规范的数据库,只需要配置:
activeRecordPlugin.setDialect(new AnsiSqlDialect());

当然,最好的办法是扩展一下 Dialect 做一个针对这个数据库的 ClickhouseDialect 出来,然后配置:
activeRecordPlugin.setDialect(new ClickhouseDialect());

2019-12-06 23:42

支持 JDK 8 的 tomcat 都可以,tomcat 下部署一定要参考文档:
https://jfinal.com/doc/1-7

2019-12-06 23:41

@zjianh 应该不是 tomcat 的原因,建议要仔细分析日志中的异常信息,解决起来很容易

此外,tomcat 下部署建议参考:
https://jfinal.com/doc/1-7

2019-12-06 23:39

上周 jfinal.com 切换到新服务器正好碰到这个问题,阿里云禁用 25 号端口,通过 465 走 SSL 通道可以很方便解决。谢谢分享

这里还有一个更重要的问题,那就是自己搭建类似于 postfix 的邮件服务,即便是走 465 的 SSL 仍然也无法实现。貌似这个 465 的 SSL 只作用于邮件发送客户端与邮件服务器之间的通道, 而不能能作用于邮件服务器之间的通信。 还未验证,希望有这方面经历的同学可以来分享

自己搭邮件服务器还是要方便些,没有发送数量的限制

2019-12-06 23:33

@nommpop 异常信息缺失关键信息, cause 部分最关键的没贴出来