# Deserialisieren von xsd:anytype



## 10verwrite (24. Jan 2012)

Hallo,

mit Hilfe dieses Forums ist es mir gelungen, eine Webservice-Client-Anwendung zu schreiben. Leider bin ich schon wieder an einem Punkt, wo ich mit meinem Wissen nicht weiterkomme.

Der Webservice

```
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
```
hat eine run()-Funktion, die ein generisches Java-Objekt zurückgeben soll:

```
@WebMethod
	public Object run(@WebParam(name = "func") Integer func,
			@WebParam(name = "param") Object[] param) {
		Functions f = new Functions();
		TestEntity[] te = new TestEntity[4];
		te[0] = new TestEntity(999);
		te[1] = new TestEntity(111);
		te[2] = new TestEntity(777);
		te[3] = new TestEntity(888);
		return te;
	}
```
Leider quittiert mir das mein Client mit dieser Meldung:


> faultString: Marshalling Error: class [Lde.xyz.abc.ws.entities.TestEntity; nor any of its super class is known to this context.



Ich denke, das Problem liegt daran, dass der Client nicht weiß, was er mit dem Objekt anfangen soll. In der WSDL-Datei wird der Rückgabetyp der run()-Funktion mit *xsd:anytype* angegeben...
Wie kann ich dem Client beibringen, dass es sich um eine TestEntity handelt? Ist das dieses "Binding"?

Wenn ich als Rückgabeparameter der Webservice-Funktion "TestEntity[]" angebe, dann funktioniert alles so wie es soll.

Ich dachte, ich könnte alle Webservice-Funktionen über die run()-Methode abwickeln und ein generisches Objekt zurückgeben, dass ich auf Clientseite je nach Context in die gewünschte Entity umwandele.

Würde mich super freuen, wenn Ihr mir auf die Sprünge helft.

Danke und Gruß, Matthias 

PS: Falls Informationen fehlen, werde ich die morgen früh nachliefern.


----------



## irgendjemand (24. Jan 2012)

da deine run() kein generisches object returned kannst du die signatur entsprechend anpassen ...


----------



## 10verwrite (24. Jan 2012)

Hmm, ich verstehe Deine Antwort nicht.

Wird das TestEntity-Array nicht dadurch generisch, dass die Webservice-Funktion es als "Object" zurück gibt?



> ...kannst du die signatur entsprechend anpassen



Die Signatur der Webservice-Methode ist so, wie ich sie gerne hätte, da sie je nach Aufruf Objekte unterschiedlicher Klassen zurückgeben können soll...


----------

