WebSphere部署应用遇wsjpa.PooledFactory非序列化警告问题咨询
WebSphere 22.0.0.4中Hibernate升级后
wsjpa.PooledFactory序列化警告问题 问题场景
在WebSphere 22.0.0.4服务器上运行基于Java EE 8 + JSF 2.3的应用时,将Hibernate从5.1.17.Final升级至5.4.33.Final后,出现如下警告:
Property 'wsjpa.PooledFactory' is not serializable, value won't be set.
问题定位
这个警告是WebSphere自带WSJPA组件与新版Hibernate的兼容性冲突,既不是你的代码问题,也不完全是Hibernate本身的问题。
Hibernate 5.4.x相比5.1.x调整了不少内部API和组件逻辑,尤其是实体管理器工厂相关的序列化流程。而WebSphere的wsjpa.PooledFactory是其内部连接池管理类,未实现Serializable接口,新版Hibernate在特定流程中尝试序列化相关对象,触发了这个警告。
解决方案建议
- 直接忽略(优先):如果应用功能正常,没有出现实体管理器获取失败、事务异常等问题,这个警告不会影响核心业务,完全可以忽略。
- 强制指定Hibernate为JPA提供者:在WebSphere控制台中,找到你的应用配置,进入模块属性的JPA设置,将持久化提供者强制选为Hibernate,跳过WebSphere自带的WSJPA组件,避免两者冲突。
- 临时降级Hibernate(备选):如果上述方法无效且警告引发了其他异常,可以暂时回退到Hibernate 5.1.x版本,等待WebSphere发布适配Hibernate 5.4.x的补丁。
内容的提问来源于stack exchange,提问作者Jacek Kaczmarek
相关产品推荐
相关产品推荐

