2019-09-19 18:05

@shate 其实可以直接访问 webapp 下面的文件,例如:
http://locahost/index/index.html

不需要配置一些东西,注意这类请求不要被 nginx 拦截

再一个,定向转发弄个 Handler 就可以了

2019-09-19 18:03

注意看一下 gzip 相关配置:
# gzip 压缩开关
undertow.gzip.enable=false
# 配置压缩级别,默认值 -1。 可配置 1 到 9。 1 拥有最快压缩速度,9 拥有最高压缩率
undertow.gzip.level=-1
# 触发压缩的最小内容长度
undertow.gzip.minLength=1024

注意生效与响应数据的长度有关,默认是 1024,如果你的响应内容达不到这个长度,是不会被压缩的,因为太短的数据压缩不划算,还不如直接传送来得快

2019-09-19 16:23

@shate 这种方法并不优雅,ControllerBind 真没必要用这个

2019-09-19 15:49

@scocai 单步调试一下,看往 cookie 中存放的是什么数据出错的,然后改一改就可以了

2019-09-19 15:48

jfinal 项目是标准的 maven 结构, vscode 支持 maven 结构,所以是一定可以开发的

热加载还真没试过, 应该也可以,因为热加载无非就是对 class path 下面的 .class 文件进行监听

记得试用以后回来分享一下

2019-09-19 10:56

cookie 规范有些字符是不允许存放的:
https://blog.csdn.net/iteye_7245/article/details/81931128

所以你碰到了这个异常:
java.lang.IllegalArgumentException: UT000173: An invalid control character [179] was present in the cookie value or attribute

解决办法很简单,不要存放这些字符,或者存之前进行转码

不建议在 cookie 中存放不支持的字符

2019-09-19 10:24

这个输出并不是 jfinal 的 action report,可能是你们自己定制的拦截器输出

也可能是你们改了源码的功能

2019-09-18 22:58

@zzutligang 添加一些代码,将出问题的请求信息完整的记录下来,然后要能在本地通过 postman 这类 http 工具重现才可以

注意,要在本地重现这个问题,然后将请求信息发给我,我在我本地重现,然后就好解决了

在本地重现就可以方便进行调试跟踪问题出在哪里,才能解决

既然你那里可以重现,一定要再次反馈给我,谢谢

2019-09-18 22:55

hbase 插件不是我写的,找到真正的作者问一下才好

2019-09-18 10:10

找一找数据库支持的一些函数,直接用上就好,例如:
https://www.cnblogs.com/zh-1721342390/p/9605279.html
https://www.runoob.com/mysql/mysql-functions.html

如果有直接可用的函数是最好的情况

2019-09-18 09:40

@你妹啊 jfinal undertow 不支持 JSP, 改用 jetty-server 进行开发:
https://www.jfinal.com/doc/1-6

部署用 tomcat:
https://www.jfinal.com/doc/1-7

JSP 太古老了,建议换用 jfinal enjoy 引擎,爽得不得了

2019-09-18 09:37

服务端接收文件改用 commons-upload.jar 试一下,将 getFile() 去除,使用如下大致的代码结构:
HttpServletRequest request = getRequest();

然后将 request 这个对象传递给 commons-upload.jar 中的相关类进行解析,commons-upload.jar 中提供了对于 HttpServletRequest 类型对象的解析类

此外,建议先检查一下是不是 getFile() 使用的时机不对,如果有拦截器的话,也要在拦截器中首先调用
getFile()
否则无法正常工作,这个在文档中有过说明:
https://www.jfinal.com/doc/3-11

2019-09-17 16:28

me.setRenderFactory(new RenderFactory()...)
仅仅起到一个切换作用, 将你的 MyErrorRender 可以用上

为什么能起到切换作用, 因为你在 new RenderFactory 的时候覆盖了父类的两个 getErrorRender 方法

2019-09-17 16:27

继承以后,这样用上:
me.setRenderFactory(new RenderFactory() {
public Render getErrorRender(int errorCode, String view) {
return new MyErrorRender(errorCode, view);
}

public Render getErrorRender(int errorCode) {
return new MyErrorRender(view);
}
);

其中的 MyErrorRender 就是你扩展 ErrorRender 而来的