3.2.2.8. 修改运行在群集环境里的移植的 Seam 和 Hibernate 应用程序的持久化属性


如果您在移植 JPA 容器管理的应用程序,影响扩展持久化上下文序列化的属性会自动传递给容器。
然而,由于 Hibernate 的修改,如果移植的 Seam 或 Hibernate 应用程序在群集环境里运行,您可能会遇到序列化问题。您会看到类似于这样的错误日志消息:
javax.ejb.EJBTransactionRolledbackException: JBAS010361: Failed to deserialize 
....
Caused by: java.io.InvalidObjectException: could not resolve session factory during session deserialization [uuid=8aa29e74373ce3a301373ce3a44b0000, name=null]
Copy to Clipboard Toggle word wrap
要纠正这些错误,您需要修改配置文件里的属性。在多数情况下是 persistence.xml 文件。对于原生的 Hibernate API 应用程序来说是 hibernate.cfg.xml 文件。

过程 3.15. 设置持久化属性以运行在群集环境里

  1. 设置 hibernate.session_factory_name 为唯一的名字。这个名字必须在 JBoss EAP 实例里的所有应用程序部署里是唯一的。例如:
    <property name="hibernate.session_factory_name" value="jboss-seam-booking.ear_session_factory"/>
    
    
    Copy to Clipboard Toggle word wrap
  2. 设置 hibernate.ejb.entitymanager_factory_name 为唯一的名字。这个名字必须在 JBoss EAP 实例里的所有应用程序部署里是唯一的。例如:
    <property name="hibernate.ejb.entitymanager_factory_name" value="seam-booking.ear_PersistenceUnitName"/>
    
    
    Copy to Clipboard Toggle word wrap
关于 Hibernate JPA 持久化单元属性设置的更多信息,请参考 第 3.2.2.3 节 “持久化单元属性”
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部