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
hat eine run()-Funktion, die ein generisches Java-Objekt zurückgeben soll:
Leider quittiert mir das mein Client mit dieser Meldung:
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.
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)
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;
}
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.