使用jfinal-undertow开发

在使用jfinal-undertow开发时 启动项目时报错 

第一张图是报错信息 第二张图是启动类中的配置 ;这个是什么问题?

image.pngimage.png

评论区

JFinal

2018-12-26 16:01

看一下 File not found 这个提示信息中的目录下面,是不是真的有 all.sql 这个文件

你的配置需要改成下面的:
activeRecordPlugin.getEngine().setToClassPathSourceFactory();
activeRecordPlugin.setBaseTemplatePath(null);
activeRecordPlugin.addSqlTemplate("sqls/all.sql");

yuer_2018

2018-12-26 16:15

@JFinal 项目中实际路径是:E:\testCode\V3\src\main\resources\sqls\all.sql
所以不知道怎么会跑到 E:\testCode\V3\out\production\classes/sqls/all.sql 这里去找。
配置改为你的建议后 报错信息是:
Caused by: java.lang.RuntimeException: Plugin start error: com.eshanren.ext.plugin.J2CachePlugin
缓存是用的 org.ehcache', name: 'ehcache', version: '3.6.1' 这个版本

JFinal

2018-12-26 16:23

@yuer_2018 src/main/resources 这里面所有文件会被编译到 classes 下面去

我看到你的项目中有一个 out 目录,这个不是标准的 maven 项目结构,甚至不是标准的 web 项目结构, 好在 jfinal 也支持这类 out/bin 目录

你只要使用我前面的配置就好:
activeRecordPlugin.getEngine().setToClassPathSourceFactory();
activeRecordPlugin.getEngine().setBaseTemplatePath(null);
activeRecordPlugin.addSqlTemplate("sqls/all.sql");

yuer_2018

2018-12-26 16:26

@JFinal 配置已经改正。现在的报错是 :
java.lang.RuntimeException: Plugin start error: com.eshanren.ext.plugin.J2CachePlugin. 是J2Cache的版本问题吗?

yuer_2018

2018-12-26 16:28

@JFinal 报错信息具体是:Caused by: java.util.ServiceConfigurationError: net.sf.ehcache.EhcacheInit: Provider net.sf.ehcache.EhcacheCoreInit not a subtype

JFinal

2018-12-26 16:30

添国一个配置:
undertow.hotSwapClassPrefix=com.eshanren.

如果还出现这类问题,继续添加配置,多个配置用逗号分隔,文档中有过说明:
https://www.jfinal.com/doc/1-5

注意看文档的第四小节

yuer_2018

2018-12-26 16:33

@JFinal 好的 谢谢大佬了

JFinal

2018-12-26 16:41

@yuer_2018 这个设计方式是为了极致性能,否则可以采用 jfinal 整合的 jetty-server 的那个方案

jetty-server 的方案比较费内存,而且响应速度不如这个方案快, 这个方案配置好以后就不需要动了,部署时也不需要改配置,因为部署时会完全忽略这个配置

yuer_2018

2018-12-26 17:25

@JFinal 我最开始是用的jetty-server 的方案 but 启动项目没有报错 但是访问时:
HTTP ERROR 404
Problem accessing /. Reason:

Not Found
Powered by Jetty:// 9.4.12.v20180830
所以才想换jfinal-undertow

JFinal

2018-12-26 17:28

@yuer_2018 出现下面这个错误:
Not Found
Powered by Jetty:// 9.4.12.v20180830

表明 jfinal 没有启动成功,通常是 web.xml 中的配置不对或者启动就有问题的情况

换 jfinal undertow 没错的,爽多了,jfinal.com 切到 jfinal undertow 一段时间了,cpub 内存占用的表现比 tomcat 要好,运行十分平稳

更重要是部署快

yuer_2018

2018-12-26 17:44

@JFinal 好的 感谢大佬

热门反馈

扫码入社