将 EAR 部署到 glassfish 3.1 集群时遇到问题。设置是这样的:我的主机 PC 上的集群 1,2 个 VM Apache 上的 2 个实例,使用 mod_jk 在 2 个实例之间进行负载平衡(带有粘性会话) Tapestry 4.x Web 应用程序
所以问题是:
- 我点击了 my.domain.com
- 我被重定向到实例 1(apache 决定将是实例 1)
- 登录
- 关闭实例 1
- 刷新页面
- Apache 会将我重定向到实例 2
我在会话 (loginData) 中存储了一个 JPA 实体。该实体有一些延迟加载的属性。所以当我被重定向到实例 2 时,我有一个错误说:
Exception Description: An attempt was made to traverse a relationship using indirection that had a null Session.
This often occurs when an entity with an uninstantiated LAZY relationship is serialized and that lazy relationship is traversed after serialization.
To avoid this issue, instantiate the LAZY relationship prior to serialization.
所以我猜测的是,在这个对象被序列化的时候,这个对象还没有被所有的属性膨胀。
如果我更改为 fetch=EAGER,它会按预期工作。
更改为 EAGER 并不是一个真正的选择...
任何想法如何解决这个问题?
谢谢