EAR を Glassfish 3.1 クラスターにデプロイするときに問題が発生します。セットアップは次のようになります。 ホスト PC 上のクラスター 1 と 2 VM Apache 上の 2 つのインスタンス 2 つのインスタンス間で負荷分散する mod_jk を使用 (スティッキー セッションを使用) Tapestry 4.x Web アプリ
問題は次のとおりです。
- my.domain.com にアクセスしました
- インスタンス 1 にリダイレクトされます (インスタンス 1 になると Apache が判断します)
- ログイン
- インスタンス 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に変更することは、実際にはオプションではありません...
この問題を解決する方法はありますか?
ありがとう