2019-05-31 18:49

jfinal undertow 不支持 shiro,这个在文档中早有说明:
https://www.jfinal.com/doc/1-5

注意看第五条

用 jetty server 也挺方便

2019-05-31 17:20

@zeroabc 这就奇怪了, jfinal-4.1-src.jar 仅仅只是个源码而已,可能只是你的开发环境的个别问题,我自己机器上一点事没有

让同事帮你试一下看看,估计也没事

2019-05-31 17:02

检查一下是不是有老版本的 jfinal jar 包有干扰,删掉那些老的 jar 包

2019-05-31 17:01

@zeroabc 直接使用 jfinal-4.1-bin.jar , 然后源码就用上 jfinal-4.1-src.jar , 看看行不行

2019-05-31 17:00

应该是你的某个 jar 或者 class 文件是依赖 3.1 版本编译的,重新编译一下相关的 jar 包

重点关注那些基于老版本 jfinal 编译的 jar 包

记得解决后回来反馈一下,这个不算什么问题,很好解决

2019-05-31 16:33

刚刚处理了一下,jfinal-4.1-bin-with-src.jar 是对的,可以使用,建议重新下载一次,可能是下载途中出现的问题

注意版本是 jfinal 4.1

2019-05-31 16:14

或许是整合的时候出现问题, 一会我上传一个新的,记得尽早来反馈一下

2019-05-31 15:57

@mrbai2018 第二种是用了一个 static 变量存放 MyService 自身,用起来区别不大,看个人习惯

2019-05-31 12:59

配置 undertow.hotSwapClassPrefix=cn.test.

2019-05-31 10:20

补充一下,本文标题是《不使用统一的运行环境配置》, 要实现这个只需要修改 jfinal.bat、jfinal.sh 启动脚本中的 JAVA_OPTS 这个变量,例如:
set "JAVA_OPTS=-Xms256m -Xmx1024m -Dundertow.port=80 -Dundertow.host=0.0.0.0"

如果要使用不同的 JDK 版本或者路径,修改后面的 java 命令行即可,例如:
java -Xverify:none %JAVA_OPTS% -cp %CP% %MAIN_CLASS%

在 java 命令前方写上 JDK 的全路径,或者使用变量来存放路径

2019-05-31 10:05

在 src/main/resources 下面放一个 undertow.txt 文件,在里头配置即可

打完包部署的时候,这个 undertow.txt 文件会被打包到 config 目录下面,部署环境下去修改它会十分方便

这个 undertow.txt 文件不用自己操心,下载 jfinal 官网首页的 jfinal demo for maven ,里头就有这个文件,并且附上了详细的配置说明

2019-05-31 09:51

参考这个:
http://www.jfinal.com/share/895

可以只用里头的 js 脚本,有需要的话可以用到里头的指令扩展

是否使用 enjoy 不是重点,重点在于其工作原理是一样的

2019-05-31 09:49

如果有拦截器的话,先在拦截器第一行调用一次: getFiles()

后面在controller 中就可以正常获取参数了,然后可以通过 getFile(...).getFile().renameTo(new File(新名字)) 将上传文件改名,甚至转移目录

2019-05-31 09:47

jfinal 高版本使用 Aop 、 @Inject 新功能完全代替了 Enhancer,所以相关文档也就改成了 Aop 、@Inject,但Enhancer、Duang 这两个工具类被保留下来,但其底层是在转调 Aop 的 API

从上可知,建议使用 Aop、@Inject,不建议使用 Enhancer

Aop、@Inject 各有优点,前者用于无法使用 @Inject 的地方,后者可以省代码,例如:
@Inject
Service service;

显然要比下面的代码要省:
Service service = Aop.get(Service.class);

尽可能去使用 @Inject ,省代码提升用户体验。 有些地方无法使用 @Inject ,这时就是 Aop.get(...) 出场的时候

@Inject 能被使用有个前提,那就是对象的创建是由 jfinal 负责的,例如 Controller 的创建是 jfinal 负责的,所以 Controller 中就可以使用 @Inject 注入业务层,由于业务层是在 controller 用 @Inject 注入的,进而在这种情况下 Service 的创建也是 jfinal 负责的,所以 Service 内部仍然可以继续使用 @Inject 一直注入下去

总有些对象的创建并不是 jfinal 接手的,例如 jfinal club 中的 AuthAdminKit , 所以它的内部就必须要使用 Aop.get(...)

2019-05-30 12:03

下载首页的 jfinal demo for maven ,将其按照 maven 项目导入到 eclispe 中, 然后再启动

你碰到的问题可能是日志没配置好,造成有异常但没有输出

这个没有什么好的技巧,按文档来就可以了