JFinal

登录 注册

Jfinal 3.5+jfinal-undertow 1.4 改造历史老项目 web.xml配置问题

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

评论

  • 01-29 16:57
    传字符串的好处是避免目标类中的 static 型的东东不会被别的 class loader 加载到,从而可能引发一些额外的问题

    感谢分享
  • 发送