2017-03-13 21:05

jdbcUrl 中注意设置一下字符集,例如:
jdbcUrl = jdbc:mysql://localhost/jfinal_demo?characterEncoding=utf8

2017-03-13 19:34

druid 自身有类似于 shutdown 和 destroy 类的方法关闭线程,如果是用的 jfinal 提供的 DriudPlugin,如果通过 me.add(druidPlugin) 过的,jfinal 会自动关闭线程,无需干预

此外,上面的代码之中 thread.stop() 这样的代码并不可靠,这个在网上有很多相关资料,这个方法的不可靠性或许就是你所碰到的有时候出问题,有时候不出问题的根本原因

2017-03-13 19:31

这个问题与包名冲突无关,多试几次就知道了

2017-03-13 17:43

上传图片看不到,可再编辑一下该贴子,重新上传图片。参数可以是中文,但要注意字符集为 utf-8

2017-03-13 17:27

@天涯刀 异常提示仍然是同一个问题

最简的解决办法是将线程给搞成 deamon 的,方法很简单,在 new Thread 的时候,传入一个 true 参数即可

其它解决方案,可以是使用一个控制变量,使线程可以完全退出。回到具体的两个问题:
1:tomcat 不是在启动的时候判断,而是在 shutdown 的时候判断是否有线程没有退出
2:要看你的监听事件的事处理方式,例如,是不是在同一个线程中处理的,如果是独立的线程之中,那么 tomcat 线程继续它自己的 shutdown 线程,而其它非 deamon 线程的停止动作还未完成,那么这个异常仍然会出现

2017-03-13 17:03

@hotsmile 扩展一下 Log 这个抽象类,然后实现 ILogFactory 接口,假定叫:MyLogFactory,最后通过 me.setLogFactory(new MyLogFactory())

参考已有的 JdkLog 实现非常容易写

2017-03-13 16:50

configEngine 中通常只需要使用 me.addSharedFuntion("xxx.html") 就可以了,该方法只有一个功能,就是将 xxx.html 中所有使用 #define 指令定义的“模板函数”添加为共享的模板函数

所谓共享地的模板函数是指,你在任何模板中都可以直接调用这些模板函数,如果你不使用 me.addSharedFunction(...) 来配置,那么想要调用这些模板函数,必须先使用 #include("xxx.html") 将之引入到当前模板之中,才可以调用

从你的问答中看出你并未理解 template function,不要把问题想复杂了,只需要注意如下几点:
1:将 me.addSharedFunction(xxx.html) 理解为在具体的模板中使用 #include(xxx.html) 添加所有 #define 指令定义的函数
2:使用 #define 定义的模板函数,可以想象成为 java 语言中定义的方法,方法有名称,有参数,方法之间可以互相调用

jfinal 模板引擎最重要的功能就是模板函数的定义与调用。其它的事情建议不要多想,再想很可能就想多了

2017-03-13 16:41

@Ferrari8899 在你的个人空间里面,点击左侧的分享菜单,出来列表以后点击删除按钮

2017-03-13 16:40

@Oliver 感谢支持 jfinal

2017-03-13 15:36

@Oliver springcloud 比 dubbo 要复杂很多,而且 spring cloud 与spring 的很多其它模块都有依赖关系,选择 spring cloud 方案,意味着你同时要学习 spring 的其它一些知识,因此学习成本会高出很多

建议使用 dubbo + jfinal 方案,已经有很多成功案例了

2017-03-13 15:07

不要将问答发布在《分享》频道,“如上图所示”看不到图,删了这个贴子,在反馈频道再发一个

2017-03-13 12:16

DemoConfig.configRoutes 中在添加路由时,不要添加 null 值 controller

2017-03-13 10:44

与 dubbo 整合的用法在几年前就在用了,这里就有很多可参考:https://www.oschina.net/search?q=jfinal+dubbo&scope=blog

2017-03-13 10:42

jfinal 是 web + orm 框架,在微服务架构中可将基于 jfinal 做的服务/项目作为微服务的一个节点

web + orm 框架在本质上与微服务是无关的。“jfinal 适合微服务架构吗”这个问题相当于在问:“spring mvc + hibernate 适合微服务架构吗”,两个问题是一回事

使用 spring mvc + hibenate 作为微服务的节点,你仍然也还要使用独立的服务治理模块结合使用,例如结合 dubbo、spring cloud

jfinal 同样,也可以结合 dubbo 这些第三方组件结合来做微服务架构

2017-03-13 10:34

截图中的红色关闭按钮是强制关闭 java 虚拟机,而 jetty、tomcat 的关闭并非指直接关闭虚拟机,而是向 jetty、tomcat 关送一个关闭信号,让其自己去关闭虚拟机

因此,beforeJFinalStop() 这个方法,会在 jetty、tomcat 正常关闭流程之下被回调,例如 tomcat 下回调它用一下 shutdown.sh、shutdown.bat 这两个可执行文件

而对于 eclipse 下面的开发情况之下,在修改了文件并保存后,jfinal 会 reload 一次 webapp,此时也会执行 beforeJFinalStop() 回调,在此方法中设置一个断点便知