2018-06-28 16:53

@八级大狂风 项目名称是 context path,这个是另外一个话题了,需要在 html 资源的前方使用 #(CXT) 这样的东东,例如:
src="#(CXT)/front/css/login.css"

再例如:
href="#(CXT)/login"

当然,使用 #(CXT) 之前需要先配置一下:
engine.addSharedObject("CXT", JFinal.me().getContextPath());

注意,context path 这个机制是 java web 规范中给定的,与 jfinal 完全无关

jfinal 是建议所有 context path 设置为 "" 字符串,这样就省去了这些麻烦事

2018-06-28 16:50

@qin 用什么方式调度的,是不是你的 cron 调度表达式有错误?

2018-06-28 13:02

本地没问题吗? 注意 tomcat 的大坑:
https://my.oschina.net/jfinal/blog/353062

2018-06-28 12:18

用一下 @ActionKey 注解

2018-06-28 10:42

jfinal 定位是 web mvc + orm + aop + template engine ,没有提供线程方面的 API

2018-06-28 10:39

fastjson 是根据 getter、setter 方法来转 json 和 parse json 的,要配置一下:
me.setJsonFactory(new MixedJsonFactory());

然后 model 中添加 setter、getter 就可以了

2018-06-28 10:36

这个问题很奇怪,url 中没有中文,居然会是乱码,原因未知

2018-06-28 10:34

虽然代码上看,druid 是 return "org.sqlite.JDBC" 了, 但 sqlite 这个数据库在 pc 端也就是 druid 上用得不算多,所以有存在 bug 的可能

在 return "org.sqlite.JDBC" 这一行代码这里设置断点,看程序到底有没有执行到这里,用 maven 下载一下源码,打断点即可知道

2018-06-28 10:31

@欧阳粤 @新手9527 @装逼大魔王

当然可以,文档中有十分明确的说明,一定要仔细看:
http://www.jfinal.com/doc/3-3

2018-06-28 10:29

@huntxt 解决就好

2018-06-28 10:29

jfinal 官网不是这么配置的,因为 jfinal.com 根本就不使用 session,看一下手头的 jfinal club 项目,里面是用数据库实现的 session 共享

弃用 tomcat 或者叫 servlet 规范中的 session ,也就是弃用 getSessionAttr、setSessionAttr、 getSession() 等一切与 session 有关的方法。 然后参考 club 实现一个 session 机制,这个 session 机制可以是保存数据库,也可以是保存到 redis,只要是共享的一个地方存起来就可以了

不用 servlet 中的 session , 由于 http 是无状态的,通常是使用 cookie 或者 token + 签名的方式,一般使用 cookie + https 既方便又安全

2018-06-28 10:23

jfinal 中使用 websocket 有很多资源可以参考:
http://www.jfinal.com/feedback/402
http://www.jfinal.com/share/139
http://git.oschina.net/dreamlu/Easy4JFinal/tree/master/easy-example/src/main/java/net/dreamlu/example/ws

还有一个办法是不使用 JFinal.start() 启动项目,而使用传统的 java web 办法启动项目,例如使用 jetty maven plugin 启动项目,这样就可以将 Jetty 升到最高版本,然后就可以使用 websocket 了

还有一个办法是使用 tomcat 启动项目

2018-06-28 10:17

@无无无 解决就好

2018-06-28 10:17

看到你的代码中有一行 arp.start(),估计你是在 "非web“ 项目中使用 ActiveRecordPlugin,那么要注意这个 arp.start() 需要一定的时间,如果在启动完成之前就开始有另一个新的线程在使用数据库操作 API,就必然会报这个异常

建议找一个合适的地方先启动整个系统,在系统启动完毕以后,别的使用线程才开始工作

2018-06-28 10:15

@阿帕奇 参考一下 TemplateRender 改进一下 JFinalView 里头有关 ClientAbortException 这个异常

简单来说就是 try catch 这个 ClientAbortException 来解决,try catch 在关代码照抄 TemplateRender.java