Недопустимый RESTful WSDL v2.0 из .Net 4.0 Framework - PullRequest
1 голос
/ 15 ноября 2011

Я создал пару сервисов 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>

1 Ответ

0 голосов
/ 18 ноября 2011

.NET не поддерживает WSDL v2. Это WSDL 1.0.


Согласно XMLSpy:

атрибут «элемент» в части сообщения «параметры» (сообщение «IRESTService_GetXMLData_InputMessage») ссылается на элемент 'tns: GetXMLData', который не определен в файле WSDL!

...