2019-02-21 12:43

你的 sql 语句最外层没有 group by,但你的 paginate 方法中使用了 isGourpSql 参数,去掉那个参数即可

这里有详细的文档:
https://www.jfinal.com/doc/5-6

group by 参数要使用得当

2019-02-21 12:41

@无云 在 pom.xml 中添加是针对当前项目的,在 maven 的 setting.xml 中添加针对所有项目的,注意区分

而且添加的内容也不相同,在网上搜索一下:阿里云 maven 库

2019-02-21 12:19

@无云 maven 下载资源的时候经常出错,网络不稳也是原因之一,建议使用 aliyun 的 maven 库,国内网更快更稳

2019-02-21 12:12

Caused by: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

缺少依赖,或依赖有冲突,解决 ClassNotFoundException 问题是 java 基础

2019-02-21 12:11

NoSuchMethodError, 可能是你部署时的 cos 版本不同,检查一下 tomcat 下面的 lib 包下面是否还存在 cos 版本

2019-02-21 12:09

这个就奇怪了,在我这没事,是不是你改过源码? 下载最新版本在本地跑跑试试

2019-02-20 21:25

参考一下官方文档:
https://gitee.com/jfinal/jfinal-weixin/wikis

2019-02-20 17:18

异常已经很清楚了: 身份验证失败

对方 email 服务器不接受你的发送请求,检查用户名密码,端口之类的,服务器端要开启 stmp pop3 等服务

2019-02-20 16:53

@Terely 拦截器是单例,是整体缓存的,才能达到极致性能,不允许删除

全面掌握拦截器的用法,根本无需采用删除的办法来满足需求

拦截器可配置 global、routes、class、method 四个级别,还有 @Clear 配合删除,足以满足各种需求,根本用不上动态删除

2019-02-20 16:32

在需要被移除的拦截器中用 if 判断一下,不要调相关逻辑就好,例如,在决定移除的地方先放个标记值:
if (...)
inv.getController().setAttr("removeInterceptors", true);

然后在被移除的拦截器中:
Boolean remove = inv.getController().getAttr("removeInterceptors");

然后根据 remove 决定是不是要调用本拦截器中的逻辑

你这个需求要考虑一下用 @Clear 注解来移除拦截器,更优雅,看一下 @Clear 文档:
https://www.jfinal.com/doc/4-4

2019-02-20 15:50

@jounzhang 大致也差不多,都是一个时机问题,时间有限每个贴子我只有 10 秒的时间去读

单步调试一下,利用 initLog() 这个机制应该可以解决

2019-02-20 15:49

即便找不到,也可以将其读文件内容存放的位置由 File 改为 ByteArrayOutputStream,指向内存即可

2019-02-20 15:48

@xnh 前面只是表达一个方向,对于 http 请求中的 file、para 的解析还得需要按照 HTTP 协议的规定来做,这部分代码可以从 cos 或 common upload 中拿来代码使用

或者 cos 这类工具中本身就有支持读 file 到内存中的 API,只需传入 request 即可使用,可以找找

2019-02-20 15:38

@xnh 这个可以不用做到 jfinal 中,而是直接扩展

在 controller 中通过 getRequest() 拿到 request 对象,然后 request.getInputStream() 去读里头的文件数据就好

个人时间有限,jfinal 只能顾到绝大多数场景,你的方案就挺好了,感谢你的分享

2019-02-20 15:01

@capfyun 为了安全,在 windows 系统里面下载过来的 CHM 默认无法打开,需要如 @王者风范 所说的方式解除安全锁定