Deserialisieren von xsd:anytype

10verwrite

Mitglied
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
Java:
@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:
Java:
	@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.
 
I

irgendjemand

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

10verwrite

Mitglied
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...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D SOAP Message deserialisieren Netzwerkprogrammierung 2

Ähnliche Java Themen


Oben