使用undertow热加载后,类型转换错误

项目从Jetty转换成undertow后,项目在启动后,一切正常,热加载一次后,在getSessionAttr处出现类型转换错误

源码:

User user=getSessionAttr("user");


上面代码在第一次启动,没有热加载前一切正常,热加载一次后抛出异常:

java.lang.ClassCastException: cn.test.model.User cannot be cast to cn.test.model.User


undertow.txt配置如下:

# 配置 undertow

undertow.devMode=true
undertow.host=0.0.0.0
undertow.port=80

# 配置热加载前缀
undertow.hotSwapClassPrefix=cn.test.

# session 过期时间,注意单位是秒
undertow.session.timeout=3600
undertow.session.hotSwap=true


请问哪配错了吗?

评论区

JFinal

2019-01-04 11:55

升级到 jfinal undertow 1.4 即可解决

永字诀

2020-02-06 18:05

@JFinal 使用Undertow - 2.0.28.Final也有这个问题
2020-02-06 18:05:24
[INFO]-[io.undertow.Undertow.start()]: starting server: Undertow - 2.0.28.Final
Loading complete in 0.6 seconds (^_^)


2020-02-06 18:05:44
[ERROR]-[com.sites.cms.common.GlobalErrorInterceptor.intercept()]: 抓获全局异常
java.lang.ClassCastException: com.sites.common.model.Account cannot be cast to com.sites.common.model.Account
at com.sites.cms.login.LoggedInterceptor.intercept(LoggedInterceptor.java:23)
at com.jfinal.aop.Invocation.invoke(Invocation.java:91)

永字诀

2020-02-06 18:05

这个问题解决了么

JFinal

2020-02-06 18:36

@永字诀 早就解决了,注意配置 undertow.hotSwapClassPrefix,文档中有:
https://jfinal.com/doc/1-5

热门反馈

扫码入社