最近在尝试把公司的一些老项目改成 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+左键 跳转到对应的类)
感谢分享