2019-02-15 17:58

@ClearInterceptor 是很老的版本,应该不涉及到你的项目,因为你的项目都已经是 jfinal 3.x 起步了

基本确定了是多个 jar 包引起的冲突,去掉不要的

2019-02-15 17:57

第二个 jar 包看上去被你们自己改造过,因为版本号并不是 jfinal 官方发布过的,建议使用第二个

删掉对第一个 jar 包的依赖

2019-02-15 17:54

context path 在大部分情况下本来就是空字符串 ""

如果希望不是空串, jfinal undertow 需配置:
undertow.contextPath="这里配置值"

tomcat 下需要配置 server.xml 中的 Host 标记下的 context 子标记下的 path 值

tomcat 下也可以将项目直接扔到 tomcat 的 webapps 目录下面,会自动出一个非空的 context path

以上全是 java web 规范,与 jfinal 无关,jfinal 仅仅只是很机械化地去获取这个值而已

2019-02-15 17:45

@2834511088 这里还有一个关键信息,异常中提到解析注释时出错,而 InterceptorManager 中很可能是解析 @Clear 这个注解出的问题,而老版本的对应注解名叫: @ClearInterceptor

也就是说新版本改过类名,如果你的 class path 下的 jfinal 版本与你项目中实质使用的不同,有可能是这个问题

2019-02-15 17:41

检查出问题运行时的 class path 下有没有多个 jfinal ,例如 tomcat 的 lib 下面有没有 jfinal.jar 之类的

2019-02-15 17:40

信息 at com.jfinal.aop.InterceptorManager.doBuild(InterceptorManager.java:83) 有点价值 ,异常信息中没有 cause 部分,关键信息丢失

打开 InterceptorManagerjava 源码,看 83 行是什么

估计是你有多个版本的 jfinal 依赖,版本冲突

2019-02-15 17:34

@roney context path 可以为空字符串 "",配置一下 tomcat 或者 undertow 的 conext path 为非空字符串自然会有值

2019-02-15 17:34

@ifu25 oschina 上回答的是美元符号,那是在 freemarker 等等其它模板引擎之下,jfinal enjoy 模板引擎的输出指令不使用美元符号

2019-02-15 17:33

@ifu25 context path 可以为空字符串 "",配置一下 tomcat 或者 undertow 的 conext path 为非空字符串自然会有值

2019-02-15 16:49

适当贴出代码,否则猜不到

2019-02-15 16:48

看一下 @山东小木 的 jbolt 项目,里头很多功能都是鼠标触发调用 jfinal API

2019-02-15 16:46

继承 UndertowServer ,覆盖掉其中的 start() 方法,将其中的输出改成你自己的即可

2019-02-15 15:42

从 jfinal 3.5 开始是 JDK 8 起步,JDK 8 性能更好,添加了好用的需要特性,值得拥有