powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / MS SOAP Toolkit 3.0 Получение "объектов" от сервиса
2 сообщений из 2, страница 1 из 1
MS SOAP Toolkit 3.0 Получение "объектов" от сервиса
    #35687340
Rombs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Есть тестовый Web-сервис, который должен по запросу возвращать структурированную информацию об объекте из БД.
Веб сервис имеете следующий WDSL:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
<wsdl:definitions targetNamespace="urn:DefaultNamespace">
	<wsdl:types>
		<schema targetNamespace="urn:DefaultNamespace">
			<complexType name="STRUCT">
				<sequence>
					<element name="AUTHOR" type="xsd:string"/>
				</sequence>
			</complexType>
			<element name="GETSTRUCTReturn" type="impl:STRUCT"/>
		</schema>
	</wsdl:types>
	<wsdl:message name="GETSTRUCTResponse">
		<wsdl:part element="intf:GETSTRUCTReturn" name="GETSTRUCTReturn"/>
	</wsdl:message>
	<wsdl:message name="GETSTRUCTRequest"/>
	<wsdl:portType name="Sample">
		<wsdl:operation name="GETSTRUCT">
			<wsdl:input message="intf:GETSTRUCTRequest" name="GETSTRUCTRequest"/>
			<wsdl:output message="intf:GETSTRUCTResponse" name="GETSTRUCTResponse"/>
		</wsdl:operation>
	</wsdl:portType>
	<wsdl:binding name="DominoSoapBinding" type="intf:Sample">
		<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="GETSTRUCT">
			<wsdlsoap:operation soapAction=""/>
			<wsdl:input name="GETSTRUCTRequest">
				<wsdlsoap:body use="literal"/>
			</wsdl:input>
			<wsdl:output name="GETSTRUCTResponse">
				<wsdlsoap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:service name="SampleService">
		<wsdl:port binding="intf:DominoSoapBinding" name="Domino">
			<wsdlsoap:address location="http://172.30.103.77:80/WS/WS.nsf/TEST?OpenWebService"/>
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>


Для обращения к нему использую MS SOAP Toolkit 3.0. Код обращения следующий
Код: plaintext
1.
2.
3.
4.
5.
6.
	Dim Client As Variant
	Set Client =CreateObject( "MSSOAP.SoapClient30" )
	Call Client.MSSoapInit( "http://172.30.103.77/RosOEZ/WS.nsf/TEST?WSDL" )
	Dim struct As Variant
	Set struct = Client.getStruct
	Msgbox struct.author


на последней строчке выдается сообщение, что объект struct не имеет свойства author. Посмотрел чего посылается и принимается, используя утилиту MSSoapT, входящую в комлект SOAP Toolkit. Потом перепроверил с помощью SoapUI 2.0.1.

Посылаем:
Код: plaintext
1.
2.
3.
4.
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
	<SOAP-ENV:Envelope xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema" xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
		<SOAP-ENV:Body /> 
	</SOAP-ENV:Envelope>

Принимаем:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
	<?xml version="1.0" encoding="UTF-8" ?> 
	<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
		<soapenv:Body>
		<ns0:TESTReturn xmlns:ns0="urn:DefaultNamespace">
			<AUTHOR>asdasdasd</AUTHOR> 
		</ns0:TESTReturn>
		</soapenv:Body>
	</soapenv:Envelope>

Пока что из идей - мелкомягкие опять обманули и MS SOAP Toolkit 3.0 не может возвращать объекты, как заявлено на сайте, а работает только со скалярами и массивами (проверял - работает). Или веб сервис возвращает неудобоваримый для клиента SOAP-конверт (сервис от IBM).

Треба помощь и совет, и если мои опасения подтвердятся, посоветуйте другой SOAP клиент для работы из VB. А то возвращать все свойства объекта в виде массива не очень хочется :)
...
Рейтинг: 0 / 0
MS SOAP Toolkit 3.0 Получение "объектов" от сервиса
    #35687349
Rombs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите, ошибся

запрос имеет следующий вид

Код: plaintext
1.
2.
3.
4.
5.
6.
	Dim Client As Variant
	Set Client =CreateObject( "MSSOAP.SoapClient30" )
	Call Client.MSSoapInit( "http://127.0.0.1/WS/WS.nsf/TEST?WSDL" )
	Dim struct As Variant
	Set struct = Client.getStruct
	Msgbox struct.author

Но проблемы остались прежними
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / MS SOAP Toolkit 3.0 Получение "объектов" от сервиса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]