2019-09-29 23:50
在undertow.txt 中配置 context 即可,例如:
undertow.contextPath=/项目名称
注意:由于 html 中的图片、js、css 等资源文件都用的绝对路径,是没有添加 contextPath 前缀的,所以页面的css、图片、js 等资源的路径全都会不正常,需要你做出改变
需要做出两个改变
1:在 JFinalClubConfig 中的 configEngine(Engine engine) 方法中添加如下配置:
engine.addSharedObject("CTX", JFinal.me().getContextPath());
2:html 中所有资源要添加 #(CTX) 前缀,例如:
<img src="#(CTX)/upload/xxx.jpg" >
上面是以图片的路径为例,js、css 等资源路径也要这样来处理
2019-09-28 15:28
应该是你的 lib 包下面的 sj_project-xxx.jar 里面将 undertow.txt 配置文件打进去了,所以你现在修改 config 目录下面的 undertow.txt 是无效的,因为 jar 包内的优先级最高
解决办法有很多,下面提供两种最常用的办法,选其一:
1:调整 pom.xml 配置,将 undertow.txt 打包排除在 jar 包之外
2:将打好包的 config 目录下面的 undertow.txt 改名为 "undertow-pro.txt" , 会被优先加载
注意:第一种修改 pom.xml 的方法,可以下载首页的 jfinal_demo_for_maven.zip,里头的 pom.xml 中配置了一个 maven-jar-plugin 插件,其中的 exclude 对 *.txt 进行了过滤,将这个插件配置复制到你的项目中即可。通过这种方法,可以将 src/main/resources 下面的需要排除的配置给排除在外
2019-09-28 15:22
@Terely 4.2 的后续版本针对 proxy 模块有过细微的改进,一个是解决部分环境下 CLASSPATH 变量问题,二个是对生成的代码进行了细微调整
建议升级到 jfinal 4.5
此外,使用新版本的 proxy + aop 模块,并且不依赖 cglib 的话,需要 JDK 支持,不能是 JRE
对于你碰到的情况,估计升级到 jfinal 4.5 即可,记得搞定后回来反馈一下
jfinal 近几个版本升级的功能细节,可以下载首页的 jfinal-4.5-changelog.txt
2019-09-28 14:17
@Terely 加个配置即可
me.setProxyFactory(new CglibProxyFactory());
2019-09-28 12:13
按下面步骤解决一下:
1:新建一个启动类,例如:
public class App {
public void main(String[] args) {
UndertowServer.start(DemoConfig.class);
}
}
2: DemoConfig 中声明的属性不能直接支持注入(注入参考后面第三条),Aop.get(...) 只有有限的支持,因为创建 DemoConfig 的时候各种初始化还没进行,可以在 onStart() 方法中使用 Aop.get(...) 进行注入
3:可以在 DemoConfig 中的 onStart() 方法中通过 Aop.inject(this) 对 DemoConfig 中的 @Inject 属性进行注入
2019-09-27 22:42
@加到几点几分裤 从来没有碰到过这个问题,也无法重现这个问题
建议用排除法先定位一下原因,排除法步骤:
1:在 tomcat 或 jetty 下运行看看问题是否依旧
2:换浏览器看看问题是否依旧
3:换 jfinal-undertow 到 1.9 看问题是否依旧
总之,先重现这个问题,然后将可疑的地方一个一个换掉,如果当前换掉的这个东东正是始作俑者,则成功定位
成功定位问题,是解决问题的起点,目前情况下只能是猜谜