dimOn писал(а):
почему явовские? они вроде как обычные?
ну спецификации такие спецификации, а стандарты такие стандарты....
вобщем я поднимал сервис простой с первичностью кода используя jax-ws, поднимал сервис с первичностью контракта на spring-ws... по всякому крутил вертел, но не получается сгенерировать манифест (wsdl) так, чтобы 1ска понимала сложные типы..
Код:
<wsdl:definitions targetNamespace="http://billing/schemas"><wsdl:types><xs:schema elementFormDefault="unqualified" targetNamespace="http://billing/schemas">
<xs:element name="ContragentRequest">
<xs:complexType><xs:sequence/>
</xs:complexType></xs:element>
<xs:element name="ContragentResponse">
<xs:complexType>
<xs:all>
<xs:element maxOccurs="1" minOccurs="0" name="Contragent" type="Contragent"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="ContragentListRequest">
<xs:complexType>
<xs:all>
<xs:element maxOccurs="1" minOccurs="0" name="s" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="ContragentListResponse" type="ArrayOfString"/>
<xs:element name="string" nillable="true" type="xs:string"/>
<xs:element name="Contragent" type="Contragent"/>
<xs:element name="FirstName" type="xs:string"/>
<xs:element name="LastName" type="xs:string"/>
<xs:complexType name="Contragent">
<xs:sequence><xs:element maxOccurs="1" minOccurs="1" name="FirstName" type="xs:string"/>
<xs:element maxOccurs="1" minOccurs="1" name="LastName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ArrayOfString">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="string" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="ContragentListRequest"><wsdl:part element="tns:ContragentListRequest" name="ContragentListRequest"> </wsdl:part></wsdl:message>
<wsdl:message name="ContragentResponse"><wsdl:part element="tns:ContragentResponse" name="ContragentResponse"> </wsdl:part></wsdl:message>
<wsdl:message name="ContragentRequest"><wsdl:part element="tns:ContragentRequest" name="ContragentRequest"> </wsdl:part></wsdl:message>
<wsdl:message name="ContragentListResponse"><wsdl:part element="tns:ContragentListResponse" name="ContragentListResponse"> </wsdl:part></wsdl:message>
<wsdl:portType name="ContragentService"><wsdl:operation name="ContragentList">
<wsdl:input message="tns:ContragentListRequest" name="ContragentListRequest"></wsdl:input>
<wsdl:output message="tns:ContragentListResponse" name="ContragentListResponse"> </wsdl:output></wsdl:operation>
<wsdl:operation name="Contragent"><wsdl:input message="tns:ContragentRequest" name="ContragentRequest"></wsdl:input>
<wsdl:output message="tns:ContragentResponse" name="ContragentResponse"> </wsdl:output></wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ContragentServiceSoap11" type="tns:ContragentService"><soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="ContragentList"><soap:operation soapAction=""/><wsdl:input name="ContragentListRequest"><soap:body use="literal"/></wsdl:input><wsdl:output name="ContragentListResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation><wsdl:operation name="Contragent"><soap:operation soapAction=""/><wsdl:input name="ContragentRequest"><soap:body use="literal"/></wsdl:input><wsdl:output name="ContragentResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="ContragentServiceService"><wsdl:port binding="tns:ContragentServiceSoap11" name="ContragentServiceSoap11"><soap:address location="http://......8080/bgbilling/api1s/"/></wsdl:port></wsdl:service></wsdl:definitions>
а вот этот сервис
http://www.morpher.ru/WebServices/Morpher.asmx?WSDL получается в 1ске покрутить...
Разницу вижу, но ничего не могу сделать - эндпоинт и схему как уже не крутил...
В рабочем сервисе сразу у сообщений тип данных указан
Код:
<wsdl:message name="GetFormsHttpGetIn">
<wsdl:part name="s" type="s:string"/>
</wsdl:message>
<wsdl:message name="GetFormsHttpGetOut">
<wsdl:part name="Body" element="tns:ArrayOfString"/>
</wsdl:message>
А у меня указан тип ответ, который уже с типом
Код:
<wsdl:message name="ContragentRequest">
<wsdl:part element="tns:ContragentRequest" name="ContragentRequest">
</wsdl:part>
</wsdl:message>
<wsdl:message name="ContragentResponse">
<wsdl:part element="tns:ContragentResponse" name="ContragentResponse">
</wsdl:part>
</wsdl:message>
Код:
<xs:element name="ContragentResponse">
<xs:complexType>
<xs:all>
<xs:element maxOccurs="1" minOccurs="0" name="Contragent" type="Contragent"/>
</xs:all>
</xs:complexType>
</xs:element>
Код:
<xs:complexType name="Contragent">
<xs:sequence>
<xs:element maxOccurs="1" minOccurs="1" name="FirstName" type="xs:string"/>
<xs:element maxOccurs="1" minOccurs="1" name="LastName" type="xs:string"/>
</xs:sequence>
</xs:complexType>