Wir haben ein Java-Backend, das Webdienste über WSDLs bedient. Es gibt einige Operationen, die xxWSResponse mit nur 1 Eigenschaft zurückgeben: ein Array.Visual Studio Service-Referenz WSDL-Rückgabetyp stimmt nicht überein
Wenn wir Service-Referenz in Visual Studio dem Webdienst hinzufügen, generiert VS den Code, um das Array direkt zurückzugeben, nicht die Antwort. Wenn in der Antwort oder mehreren Arrays mehr Eigenschaften vorhanden sind, funktioniert es wie gewünscht und gibt die Antwort zurück.
Betrieb Beispiel:
<wsdl:operation name="retrieveParameterTasksList">
<wsdl:documentation> isIdempotent = NO -- TR:/retrieveParameterTasksList{retrieveParameterTasksList} -- EN:/retrieveParameterTasksList{retrieveParameterTasksList} </wsdl:documentation>
<wsdl:input message="tns:retrieveParameterTasksListRequestMsg" name="RetrieveParameterTasksListWSRequest" />
<wsdl:output message="tns:retrieveParameterTasksListResponseMsg" name="RetrieveParameterTasksListWSResponse" />
<wsdl:fault message="tns:SystemFault" name="SystemFault" />
<wsdl:fault message="tns:BusinessFault" name="BusinessFault" />
</wsdl:operation>
RetrieveParameterTasksListWSResponse:
<xsd:complexType name="RetrieveParameterTasksListWSResponse">
<xsd:sequence>
<xsd:element form="qualified" name="taskListVOs" type="this:TasksListParameterDTO" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
Auto generierte Code von VS:
public namespace.TasksListParameterDTO[] retrieveParameterTasksList(namespace.RetrieveParameterTasksListWSRequest RetrieveParameterTasksListWSRequest) {
namespace.RetrieveParameterTasksListWSRequest1 inValue = new namespace.RetrieveParameterTasksListWSRequest1();
inValue.RetrieveParameterTasksListWSRequest = RetrieveParameterTasksListWSRequest;
namespace.RetrieveParameterTasksListWSResponse retVal = ((namespace.WebServiceV1x0)(this)).retrieveParameterTasksList(inValue);
return retVal.RetrieveParameterTasksListWSResponse1;
}
Meine Frage: Warum Visual Studio tut ignoriert den Antworttyp und Rückkehr das Array drin? Wie kann ich die tatsächliche Antwort zurückgeben?
Vielen Dank!
Ich habe versucht "immer Nachrichtenverträge generieren" und hat nicht funktioniert. – gmnnn