ERLEDIGT
JA
JA
ANTWORTEN
0
0
ZUGRIFFE
704
704
EMPFEHLEN
-
02.05.10 17:47 #1
- Registriert seit
- Mar 2010
- Beiträge
- 3
Hallo Zusammen
Ich bin am erstellen einer Client-Server Anwendung und bin dabei noch auf ein Problem gestossen. Zur Umgebung; Client JavaFx der mittels Hessian auf den Server (Spring Tomcat) zugreift. Auf der Server-Seite wird Hibernate mit JPA als persistence-Provider eingesetzt. Nun habe ich Probleme beim Laden einer Entität über einen Hessian-Service - genau liegt es beim Laden einer Collection von Child-Records einer Entität. ?:L
Ich habe folgende OneToMany-Relation auf der zu ladenden Entität:
Code java:1 2
@OneToMany(fetch = FetchType.EAGER, targetEntity = Item.class, mappedBy = "_itemHeadId") private Collection<Item> _headItems = new HashSet<Item>();
Den Service gemäss applicationContext.xml ist wie folgt definiert:
<bean id="TestService" class="org.springframework.remoting.caucho.HessianServiceExporter"Code :1 2 3 4
scope="session"> <property name="service" ref="testService" /> <property name="serviceInterface" value="Application.BaseData.BusinessProcess.ITestService" /> </bean>
Wenn ich nun vom Client diesen Service aufrufe und dort ein Query auf der Entität HEAD ausführe erhalte ich auf Client-Seite folgende Fehlermeldung:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
2010-05-02 17:36:31,412 [main] ERROR - failed to lazily initialize a collection, no session or session was closed 0org.hibernate.LazyInitializationException: failed to lazily initialize a collection, no session or session was closed at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380) at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372) at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:365) at org.hibernate.collection.AbstractPersistentCollection.write(AbstractPersistentCollection.java:205) at org.hibernate.collection.PersistentBag.add(PersistentBag.java:297) at com.caucho.hessian.io.CollectionDeserializer.readList(CollectionDeserializer.java:78) at com.caucho.hessian.io.HessianInput.readObject(HessianInput.java:1043) at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:383) at com.caucho.hessian.io.JavaDeserializer.readMap(JavaDeserializer.java:199) at com.caucho.hessian.io.JavaDeserializer.readMap(JavaDeserializer.java:141) at com.caucho.hessian.io.HessianInput.readObject(HessianInput.java:1030) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:201) at $Proxy0.queryHeadByHeadId(Unknown Source) at ch.bizWare.client.SampleClient.main(SampleClient.java:51) Exception in thread "main" com.caucho.hessian.client.HessianRuntimeException: com.caucho.hessian.io.HessianFieldException: ch.bizWare.Core.Domain.BaseData.Head._headItems: java.util.Collection cannot be assigned from null at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:213) at $Proxy0.queryHeadByHeadId(Unknown Source) at ch.bizWare.client.SampleClient.main(SampleClient.java:51) Caused by: com.caucho.hessian.io.HessianFieldException: ch.bizWare.Core.Domain.BaseData.Head._headItems: java.util.Collection cannot be assigned from null at com.caucho.hessian.io.JavaDeserializer.logDeserializeError(JavaDeserializer.java:592) at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:387) at com.caucho.hessian.io.JavaDeserializer.readMap(JavaDeserializer.java:199) at com.caucho.hessian.io.JavaDeserializer.readMap(JavaDeserializer.java:141) at com.caucho.hessian.io.HessianInput.readObject(HessianInput.java:1030) at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:201) ... 2 more Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection, no session or session was closed at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380) at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372) at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:365) at org.hibernate.collection.AbstractPersistentCollection.write(AbstractPersistentCollection.java:205) at org.hibernate.collection.PersistentBag.add(PersistentBag.java:297) at com.caucho.hessian.io.CollectionDeserializer.readList(CollectionDeserializer.java:78) at com.caucho.hessian.io.HessianInput.readObject(HessianInput.java:1043) at com.caucho.hessian.io.JavaDeserializer$ObjectFieldDeserializer.deserialize(JavaDeserializer.java:383) ... 6 more
Grundsätzlich ist mir klar warum dieser Fehler entsteht, nur wie ich diesen beheben kann ist mir nicht klar. Weil die Relation auf Fetch= FetchType.EAGER eingestellt ist, werden grundsätzlich beim Laden der Entität alle Child-records auch mitgeladen. Dies sehe ich auch beim Debuggen der Server-Seite. Jedoch sobald hessian mit der Serialisierung beginnt, fliegt mir die Kiste um die Ohren. ;(
Hoffe es hat jemand von Euch eine Idee wie ich das lösen kann.
Danke für Eure Hilfe
Lumpiscore
Ähnliche Themen
-
Spring Application Context - wird er durch den Garbage Collector freigegeben?
Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 24.08.10, 15:51 -
GWT Remote Services mit Spring konfigurieren.
Von Thomas Darimont im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 12.05.09, 00:04 -
Remote-Zugriff mit Putty
Von mschlegel im Forum Linux & UnixAntworten: 9Letzter Beitrag: 27.02.08, 19:39 -
Netter Artikel zum Thema Spring unter Websphere Application Server
Von Thomas Darimont im Forum Java Technology NewsAntworten: 0Letzter Beitrag: 03.04.06, 10:49 -
DFÜ - Remote-Zugriff - Problem
Von TomHH im Forum NetzwerkeAntworten: 1Letzter Beitrag: 24.06.04, 12:18





Zitieren
Login





