forum.bitel.ru
http://forum.bitel.ru/

1c 8.2 и WS-ссылка
http://forum.bitel.ru/viewtopic.php?f=14&t=6648
Страница 1 из 1

Автор:  Феанор [ 04 апр 2012, 09:30 ]
Заголовок сообщения:  1c 8.2 и WS-ссылка

Добрый день, а кто нибудь интегрировал 1ску и биллинг через вебсервисы? Ну или хотя бы в курсе дел..

Я поднял сервлет на JAX-WS, опубликовал. 1ска прожевывает wsdlку, вызовы делает, но передать объект сложнее строки не получается, когда возвращается объект кастомного класса идет ошибка преобразования XDO (вроде бы, не помню уже точно)... На 1совских форумах пишут что 1ска не дружит с явовскими сервисами... Может кто нибудь знает как победить это? Или забить?

Автор:  dimOn [ 04 апр 2012, 15:38 ]
Заголовок сообщения:  Re: 1c 8.2 и WS-ссылка

почему явовские? они вроде как обычные?

Автор:  Феанор [ 06 апр 2012, 10:41 ]
Заголовок сообщения:  Re: 1c 8.2 и WS-ссылка

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>

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/