Web Services mit EJB 3.0 und JPA

Ich hab in letzter Zeit mal ein wenig mit durch EJB 3.0 implementierte SOAP Web Services rumgespielt. Alles in allem ist das prima, einfach ein paar Annotationen, und schon hat man einen Web Service.

Wenn man jetzt aber versucht seine JPA Klassen (die können ja serialisiert werden) über diesen Web Service zu schicken dann bekommt man (vorausgesetzt das Datenmodell besteht aus mehr als einer Klasse) die Fehlermeldung das “circular References” vorhanden sind.

Ist ja eigentlich auch klar. Die Java Klassen referenzieren sich ja mit “Zeigern” während im XML (dem SOAP Body) sowas natürlich nicht geht.

Die Frage ist nun ob man dem Container beibringen kann nur entweder die

@OneToMany

oder die

@ManyToOne

Methode zu serialisieren, und die jeweils andere zu ignorieren. Denn dann würds ja funktionieren. Vielleicht find ich da ja noch was …

Update Montag den 07. Juli 2008:
Also ich hab ganz schön lang gesucht und leider nix gefunden. Ich fürchte man kommt um DTO’s in diesem Zusammenhang nicht herum. Schade …

Update Sonntag den 04. Januar 2009:
Mann manchmal stellt man sich an! Ist doch ganz einfach, bevor man die Pojo’s als SOAP Nachricht verschickt löscht man in der EJB einfach die circular Reference raus. Voila, und schon gehts! Also nix mit DTO’s!!!!!

Antwort schreiben