@JFinal
自己实现了Undertow的SessionManager,怎么配置到UndertowServer里呢?
UndertowServer这个对象是在JFinal-undertow这个jar包里。
1,新建一个SessionManagerFactory实现
public static class YourSessionManagerFactory implements SessionManagerFactory { @Override public SessionManager createSessionManager(Deployment deployment) { return yoursessionManager; }}
2,在UndertowServer启动中配置上去.
UndertowServer.create(Xxx.class).configWeb(builder -> { builder.getDeploymentInfo().setSessionManagerFactory(new YourSessionManagerFactory());}).start();
3,可能遇到的问题,如果session中保存有对象, request.getSession().getAttribute("xxx")转换时出现
java.lang.ClassCastException
的异常,请看看是否是由于ClassLoader不一致造成。常见如下:
com.jfinal.server.undertow.hotswap.HotSwapClassLoader@xaxx000
sun.misc.Launcher$AppClassLoader@9x9ssdf
简单粗暴的解决办法是关掉undertow开发模式,undertow.devMode=false
1,新建一个SessionManagerFactory实现
2,在UndertowServer启动中配置上去.
3,可能遇到的问题,如果session中保存有对象, request.getSession().getAttribute("xxx")转换时出现
的异常,请看看是否是由于ClassLoader不一致造成。常见如下:
com.jfinal.server.undertow.hotswap.HotSwapClassLoader@xaxx000
sun.misc.Launcher$AppClassLoader@9x9ssdf
简单粗暴的解决办法是关掉undertow开发模式,undertow.devMode=false