最近在尝试把公司的一些老项目改成 jfinal 版本 遇到一些问题
web.xml 的配置无效了 使用UndertowServer的方式,以前的JFinal.start和发布到tomcat 运行 不存在这个问题。
解决方案 :
打开 com.jfinal.server.undertow.UndertowServer 源码 第585行 波总已经写出了很明确的注释
UndertowServer.create(AppConfig.class)
.configWeb( builder -> {
// 配置 Filter
builder.addFilter("myFilter", "com.abc.MyFilter");
builder.addFilterUrlMapping("myFilter", "/*");
builder.addFilterInitParam("myFilter", "key", "value");
// 配置 Servlet
builder.addServlet("myServlet", "com.abc.MyServlet");
builder.addServletMapping("myServlet", "*.do");
builder.addServletInitParam("myServlet", "key", "value");
// 配置 Listener
builder.addListener("com.abc.MyListener");
// 配置 WebSocket,MyWebSocket 需使用 ServerEndpoint 注解
builder.addWebSocketEndpoint("com.abc.MyWebSocket");
})
.start();把 原来配置在 web.xml中的一些东西都放到这里来就行了。
最后给个建议:WebBuilder的 addFilter、 addServlet 等方法 配置类名的时候传递类名 这样可以书写方便而且不会写错(web.xml 配置的时候可以直接ctrl+左键 跳转到对应的类)
感谢分享