0 / 0 / 0
Регистрация: 09.02.2009
Сообщений: 56
1

Сериализация объекта полученного из Web сервиса

25.10.2009, 15:46. Показов 12732. Ответов 6
Метки нет (Все метки)

Ну вообщем встала задача обратиться из Лотуса к Веб сервису.
С обращением проблем особо не возникло.

Код
Sub Test()
Dim Res As Variant
sWSDL="http://.../Service.asmx?WSDL"
Set Client =CreateObject("MSOSOAP.SoapClient30")
Call Client.mssoapinit (sWSDL)
CLient.ClientProperty("ServerHTTPRequest") = True
CLient.ConnectorProperty("Timeout") = 70000
Set Res=Client.CeateArea("test", "test")
End Sub
И получаем объект Res, я знаю его структуру, но обращение из разряда X = Res.A выдают ошибку.
Соответственно есть 2 пути решения проблемы:
1.Возвращать переменные строго заданного типа, но это плохое решение.
2. Сериализовать полученный объект... и вот тут и встает вопрос КАК? На Jave вроде примеров много, но мне интересно узнать есть ли решение на Scripte?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2009, 15:46
Ответы с готовыми решениями:

Вызов com-объекта из web-сервиса
возможно кто-нибудь сталкивался с такой проблемой: в VS 2003 возникает ошибка ...

2 сервиса (WCF Web API и ASP.NET Web API) на одном хосте
Есть БД с юзерами Есть консольное приложение (OWIN selfhost) с контроллером ImportController :...

Connect объекта, полученного через qobject_cast
Почему то выдается "read access violation" OpticsServer* server =...

Сериализация объекта
Доброго времени суток. Есть объект, нужно сериализовать его и записать в файл: сериализовали -...

6
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
25.10.2009, 22:38 2
простейшее, что приходит на ум - преобразовать нужные поля в разделенную строку, получить ее, распарсить и сформировать на этих значениях свой объект.
думаю, где-то так оно и работает
0
0 / 0 / 0
Регистрация: 09.02.2009
Сообщений: 56
26.10.2009, 11:33 3
думаю, где-то так оно и работает
Ну эт понятно =)
Но вопрос собственно говоря в чем...
Например используя XMLHTTP сервис вернет чистый XML , и его можно парсить Лотусинными средствами. На XMLHTTP , кстати и примеров побольше, так что попробую еще и на нем реализовать.
Но вот , что ворзвращает MS Soap? Я считаю что в нем(SOAP) есть какой то парсер его же объектов, а так как с веб сервисами раньше толком дела не имел, многое остается непонятно...
Вот можно например поподробней , что такое MS SoapReader? что это за COM такой?
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
26.10.2009, 11:52 4
сам соап не юзал.
подозреваю, что соап определяет автоматическую сериализацию/десериализацию

или то корба?.. короче, я тебя токо запутаю ))
0
0 / 0 / 0
Регистрация: 09.02.2009
Сообщений: 56
26.10.2009, 12:15 5
А можешь, тогда пример кода на XMLHTTP? Или ты не на нем писал?
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
26.10.2009, 12:44 6
не особо... некоторые тесты с ajax проводил только...
0
0 / 0 / 0
Регистрация: 09.02.2009
Сообщений: 56
26.10.2009, 15:23 7
Вообщем все оказалось просто

Так как дебагер Lotusа не возвращал мне структуру объекта, я переписал все в обычный VB, и там уже посмотрел структуру полученного объекта. И понял что xml лежит вы Res.Context.xml. Ну распарсить данный xml - лекго, да и не моя задача
Получилось :

Код
Dim Res As Variant
sWSDL=".../Service.asmx?WSDL"
Set Client =CreateObject("MSOSOAP.SoapClient30")
Call Client.mssoapinit (sWSDL)
CLient.ClientProperty("ServerHTTPRequest") = True
CLient.ConnectorProperty("Timeout") = 70000
Set Res=Client.CeateArea("test", "test")
ResXml = Res.Context.xml
Msgbox ResXml
Всем спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2009, 15:23

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Сериализация объекта
public class UserObject { public string variable1{ get; set; } ...

Сериализация объекта
Доброго времени суток. Мне нужно сериализавать объект то есть создать бинарный файл, проблема в том...

Сериализация объекта
У меня есть абстрактный метод: public abstract void save(); Вот его одна из вариаций...

Вызов Web-сервиса. Help
Нужно передавать файл в кодировке BASE64 но в формате XSD_STRING. Вызов на LS через Web Service...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.