Abbiamo un backend Java che serve servizi Web tramite WSDL. Ci sono alcune operazioni che restituiscono xxWSResponse con solo 1 proprietà in esso: una matrice.Riferimento servizio Visual Studio Il tipo di ritorno WSDL non corrisponde
Quando aggiungiamo il riferimento del servizio in Visual Studio al servizio Web, VS genera il codice per restituire direttamente l'array, non la risposta. Se ci sono più proprietà nella risposta o più matrici funziona come dovrebbe e restituisce la risposta. campione
Operation:
<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 Codice generato da 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;
}
La mia domanda: Perché il Visual Studio ignora il tipo di risposta e ritorno la matrice in esso? Come posso rendere la risposta effettiva?
Grazie!
Ho provato "Genera sempre contratti di messaggio" e non ha funzionato. – gmnnn