# Problem mit Hibernate und GWT



## marky8264 (19. Mrz 2011)

Hey,
Ich habe ein kleines Problem mit GWT und Hibernate. In unserem Programm verwenden wir GWT, Spring und hibernate. Dabei habe folgendes Problem:


```
Caused by: com.google.gwt.user.client.rpc.SerializationException: Type 'org.hibernate.collection.PersistentBag' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized.: instance = []
	at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:614)
	at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:126)
	at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter$ValueWriter$8.write(ServerSerializationStreamWriter.java:152)
	at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue(ServerSerializationStreamWriter.java:534)
	at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeClass(ServerSerializationStreamWriter.java:704)
	at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeImpl(ServerSerializationStreamWriter.java:734)
	at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:616)
	at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:126)
	at com.google.gwt.user.client.rpc.core.java.util.Collection_CustomFieldSerializerBase.serialize(Collection_CustomFieldSerializerBase.java:45)
	at com.google.gwt.user.client.rpc.core.java.util.ArrayList_CustomFieldSerializer.serialize(ArrayList_CustomFieldSerializer.java:38)
	... 36 more
```

Soweit ich herausgefunden habe, hat das etwas mit der Serialisierung von Listen zu tun. Ist das richtig und wie kann ich das Problem lösen?
Ich hoffe ihr könnt mir weiter helfen.
mfg


----------



## Noctarius (19. Mrz 2011)

Vermutlich musst du für GWT extra TransportObjects (also reine Beans) basteln welche keine Abhängigkeiten zu Hibernate haben.


----------



## marky8264 (19. Mrz 2011)

erstmal danke für die schnelle antwort.

Das heißt also, ich muss alle meine DOM-Klassen zweimal anlegen. Einmal für hibernate und dann noch einmal als DTOs?

Gibt es denn keine andere Möglichkeit das zu lösen? Denn das schein mir (als Anfänger) nicht gerade als eine gute Lösung wenn ich alles doppelt habe. 
mfg


----------



## Noctarius (19. Mrz 2011)

Du kannst ja mal versuchen die Klassen mit einem Interface zu versehen, sodass GWT die Interfaces in JS kompilieren kann. Möglicherweise geht es so.

Alternativ gibt doch einen fertigen Ansatz GWT / Hibernate / Spring. Kannst ja mal schauen, wie die das gemacht haben.


----------



## maki (19. Mrz 2011)

Using GWT with Hibernate - Google Web Toolkit - Google Code

Da werden ein paar Alternativen genannt.


----------



## marky8264 (20. Mrz 2011)

Danke erstmals

ich habe jetzt versuch das Problem mit gilead zu lösen. Dabei habe ich folgende Libs eingebunden:
 - gilead-core-1.3.2
 - gilead-hibernate 1.3.2
 - gilead4gwt-1.3.2
 - org.springframework.we-3.0.5
 - gwt-sl-0.1.5
 - beanlib-hibernate-5.0.3beta
 - beanlib-5.0.3beta

Jetzt bekomme ich imme folgende Exception:

```
Caused by: java.lang.ClassNotFoundException: net.sf.hibernate4gwt.core.HibernateBeanManager
	at java.lang.ClassLoader.findClass(ClassLoader.java:359)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
	at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:352)
	at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337)
	... 48 more
```
Ich dachte eig., dass hibernate4gwt gilead ist. Deswegen habe ich keine Ahnung was ich jetzt tun muss. ???:L
kann mir bitte jemand weiterhelfen.
mfg


----------



## marky8264 (20. Mrz 2011)

habe herausgefunden, dass ich eine alte version von gwt-sl verwende. 
dummer fehler mit großer wirkung.


----------

