Я создал пару сервисов WCF.Один очень надежный, который может принимать запросы как SOAP, так и RESTful и предоставлять ответы XML и JSON.
- РЕДАКТИРОВАТЬ: FYI: Включение конечной точки SOAP для приема запроса RESTful требует использования [WebGet ...и поэтому все входные параметры должны иметь тип string.
Другой, простой соединитель RESTful.WSDL для первой службы проверяется, однако для второго очень простого соединителя RESTful - недействительно.
Я использовал WSDL2Java для завершения процесса подключения, но произошел сбой из-за недопустимого WSDL.
Я ошибаюсь, полагая, что создается WSDL v2.0?
Вот WSDL из сервиса:
<?xml version="1.0" encoding="utf-8"?> <wsdl:definitions name="RESTService" targetNamespace="http://antennasoftware.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://antennasoftware.com" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> <wsdl:types> <xsd:schema targetNamespace="http://antennasoftware.com/Imports"> <xsd:import schemaLocation="http://localhost/VRPCWebServices/RestService.svcxsd=xsd0" namespace="http://antennasoftware.com"/> <xsd:import schemaLocation="http://localhost/VRPCWebServices/RestService.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/"/> </xsd:schema> </wsdl:types> <wsdl:message name="IRESTService_GetXMLData_InputMessage"> <wsdl:part name="parameters" element="tns:GetXMLData"/> </wsdl:message> <wsdl:message name="IRESTService_GetXMLData_OutputMessage"> <wsdl:part name="parameters" element="tns:GetXMLDataResponse"/> </wsdl:message> <wsdl:message name="IRESTService_GetJSONData_InputMessage"> <wsdl:part name="parameters" element="tns:GetJSONData"/> </wsdl:message> <wsdl:message name="IRESTService_GetJSONData_OutputMessage"> <wsdl:part name="parameters" element="tns:GetJSONDataResponse"/> </wsdl:message> <wsdl:portType name="IRESTService"> <wsdl:operation name="GetXMLData"> <wsdl:input wsaw:Action="http://antennasoftware.com/IRESTService/GetXMLData" message="tns:IRESTService_GetXMLData_InputMessage"/> <wsdl:output wsaw:Action="http://antennasoftware.com/IRESTService/GetXMLDataResponse" message="tns:IRESTService_GetXMLData_OutputMessage"/> </wsdl:operation> <wsdl:operation name="GetJSONData"> <wsdl:input wsaw:Action="http://antennasoftware.com/IRESTService/GetJSONData" message="tns:IRESTService_GetJSONData_InputMessage"/> <wsdl:output wsaw:Action="http://antennasoftware.com/IRESTService/GetJSONDataResponse" message="tns:IRESTService_GetJSONData_OutputMessage"/> </wsdl:operation> </wsdl:portType> <wsdl:service name="RESTService"/> </wsdl:definitions>
.NET не поддерживает WSDL v2. Это WSDL 1.0.
Согласно XMLSpy:
атрибут «элемент» в части сообщения «параметры» (сообщение «IRESTService_GetXMLData_InputMessage») ссылается на элемент 'tns: GetXMLData', который не определен в файле WSDL!