Service を呼び出してエンティティをロードします。これを統合テストで実行すると問題ありませんが、実際のサーバーでは失敗します。
このエンティティの一部のプロパティはコレクションです。どちらの場合も、エンティティには Bean がロードされています。「query.getSingleResult()」の近くでブレークポイントを使用してデバッグモードで実行を停止すると、コレクションがロードされたことがわかります。ただし、試運転のみ...
servletcontainer で同じコードを停止すると、InvocationException が発生します!?
私の環境は次のようになります:
春 3.1
休止状態 3.6.6.Final
私が試したこと:
- context.xml (テストと本番) の違いを検索する
- productionmode で他の context.xml ファイル (テスト) を使用する
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: de.hoeso.gwt.platform.server.domain.common.Person.anschrift, no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:383)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:375)
at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:122)
at org.hibernate.collection.PersistentBag.size(PersistentBag.java:248)
at de.hoeso.sis.server.services.common.impl.UserServiceBeanImpl.login(UserServiceBeanImpl.java:397)
at de.hoeso.sis.server.rpc.LoginService.execute(LoginService.java:35)
テストモードでは、休止状態のセッションが接続されて開いていることがわかりました。プロダクション モード (サーブレット コンテナでは、entitymanager.getDelegate()
.