2019-06-19 18:06
@白世伟 从项目代码和结构来看是对的,没有什么问题,很可能是你项目创建或者导入的时候有问题
解决办法如下:
1:确保项目是标准的 maven 结构
2:将项目从 eclipse 中删除。注意删除时 "不要勾选" Delete project content on disk。 也就是说不是真删,而只是将项目从 eclipse 左侧的目录中删除出去
3:从资源管理器中找到项目,删掉项目中的所有文件,只保留 src 目录以及 pom.xml 文件,注意隐藏文件也要删干净。这一步本质是删掉 eclipse 为你的项目生成的一些乱七八槽的配置之类的文件
4:重新导入 maven 项目,让 eclipse 重新为你生成项目的各种配置文件。注意导入的关键在于:一定要选择 Existing Maven Projects 进入导入向导,否则生成的项目配置并不是标准的 maven 配置
5:运行项目打完收工
2019-06-19 17:44
@124653847atqq.com 目前最好的解决办法是通过继承 UndertowServer 并覆盖掉父类中的 configHttp() 方法,然后照抄里头的代码,仅仅去掉下面这行代码:
pathHandler = new SetHeaderHandler(pathHandler, "Server", "JFinal");
当然,你也可以改掉这行代码,配置成自己喜欢的 Server name
2019-06-19 17:38
这个问题最简单的办法就是扩展 FieldGetter ,做一个 MyFieldGetter,大至如下:
public class MyFieldGetter extends FieldGetters.GetterMethodFieldGetter {
...
}
然后在里头填上你自己改进过的 takeOver 方法,最后配置一下:
Engine.addFieldGetter(1, new MyFieldGetter());
注意添加的时候,第一个参数很重要,这个关系到优先级,你的 MyFieldGetter 优先级要高于 GetterMethodFieldGetter,对于 jfinal 4.2 来说传入 1 即可,因为优先级最高的 0 为:RealFieldGetter
你的这个 MyFieldGetter 要配置在 RealFieldGetter 之后最合适,相关源码在 : com.jfinal.template.expr.ast.FieldGetters.java 中,建议看一看
2019-06-19 17:27
@124653847atqq.com 下一版本我打算添加一个配置,让你可以配置这个 server name,想取什么名都可以