Java 1.6 WebService

Mighty-M@ck

Jonagold
Registriert
02.03.06
Beiträge
20
Hoi,

bin mal gespannt ob sich hier jemand findet der mir weiterhelfen kann. :) Leider gibt es generell noch nicht viele Informationen zu genau diesem Thema.

Ok - folgendes:

Ich baue gerade einen WebService mit Java 1.6. Dank der Integration von JAX-WS sollte das mit 1.6 ein Kinderspiel sein. 'Einfache' WebServices, also WebServices die keine komplexe Datenstruktur als Parameter erwarten bzw. als Rückgabewert zurückliefern, stellen auch kein Problem dar - im Gegenteil - man kann sie sehr schnell und komfortabel erstellen. Schwierig scheint das Ganze zu werden, wenn die Datenstruktur abstrakte Typen und generell Vererbung enthält.

Wenn ich das Prinzip von JAX-WS richtig verstanden habe, baut man sich seinen WebService, erstellt die Datenstruktur(en) für die Kommunikation mit dem Client, drückt anschließend aufs Knöpfchen und generiert sich via wsgen automatisiert das zugehörige WSDL-File. Wenn man nun genau so vorgeht, wird leider ein Teil der Datenstruktur nicht erzeugt - nämlich alle die Klassen, die nie direkt sondern nur über ihre Superklasse referenziert werden. Offensichtlich steigt das wsgen-tool in die WebService-Methoden ein, hangelt sich rekursiv durch alle Referenzen und generiert für alle Klassen die es findet den entsprechenden Eintrag im WSDL-File. Habe ich nun z.B. irgendwo eine Referenz auf die abstrakte Klasse 'Haustier', so wird diese noch im WSDL-File erfasst. Alle abgeleiteten Klassen, z.B. 'Hund', 'Katze', 'Meerschwein', etc., werden ignoriert ... direkte Referenzen auf ein Objekt dieser Klassen sind auch nirgends vorhanden.

Kennt jemand dieses Phänomen und hat sich damit bereits auseinandersetzen müssen? Gibt es hier einen Workaround oder irgendwelche Annotations die man setzen kann, um eben auch die abgeleiteten Klassen zu berücksichtigen?

Danke im Voraus und Grüße aus Stuttgarf,
Migthy-M@ck