Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вызов методов из soap модуля данных / 10 сообщений из 10, страница 1 из 1
23.04.2018, 20:36
    #39635027
Disite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов методов из soap модуля данных
Доброго времени суток. Изучаю работу веб-сервиса на делфи и возникли некоторые трудности с вызовом методов удаленного модуля данных по протоколу SOAP. В общем, есть веб-сервис, которые содержит несколько методов, и модуль данных, у которого также есть методы. В клиентском приложении на форму кинул soapConnection,пытаюсь вызвать метод из модуля данных следущим образом:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
var dmIntf:IMyDMIntf;
sum:integer;
begin
soapConnection1.URL:= 'http://localhost:8080/soap/IMyDMIntf';
soapConnection1.SOAPServerIID:= 'IAppServerSOAP - {C99F4735-D6D2-495C-8CA2-E53E5A439E61}';
dmIntf:= soapConnection1.GetSOAPServer as IMyDMIntf;
sum:= dmIntf.GetSum(3,1);
end;


При запуске клиента возникает ошибка "Interface not supported". Не могу понять в чем причина. Руководствовался дельфовой документацией - http://docwiki.embarcadero.com/RADSt...ver_Interfaces. WSDL импортировал. Сервер фурычит. Где я не так указал интерфейс?
...
Рейтинг: 0 / 0
24.04.2018, 11:12
    #39635200
Disite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов методов из soap модуля данных
Хм, неужели никто с этим не сталкивался?
...
Рейтинг: 0 / 0
24.04.2018, 11:34
    #39635228
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов методов из soap модуля данных
Disite,

Я с SOAP как-то работал, уже довольно давно. После разнообразных плясок начал сохранять запросы и смотреть, что в них не так (необходимый формат запросов был точно известен). Закончилось правками сырцов и всё заработало. Давно, правда, было, еще на 7-ке.
...
Рейтинг: 0 / 0
24.04.2018, 12:02
    #39635245
Disite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов методов из soap модуля данных
makhaon, короче разобрался. в поле soapConnection1.SOAPServerIID надо было указать GUID, который генерится после импорта wsdl на клиента. Однако во всех статьях, с которыми сталкивался, это поле и не меняли. Странно как то...
...
Рейтинг: 0 / 0
24.04.2018, 12:25
    #39635269
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов методов из soap модуля данных
DisiteДоброго времени суток. Изучаю работу веб-сервиса на делфи и возникли некоторые трудности с вызовом методов удаленного модуля данных по протоколу SOAP. В общем, есть веб-сервис, которые содержит несколько методов, и модуль данных, у которого также есть методы. В клиентском приложении на форму кинул soapConnection,пытаюсь вызвать метод из модуля данных следущим образом:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
var dmIntf:IMyDMIntf;
sum:integer;
begin
soapConnection1.URL:= 'http://localhost:8080/soap/IMyDMIntf';
soapConnection1.SOAPServerIID:= 'IAppServerSOAP - {C99F4735-D6D2-495C-8CA2-E53E5A439E61}';
dmIntf:= soapConnection1.GetSOAPServer as IMyDMIntf;
sum:= dmIntf.GetSum(3,1);
end;


При запуске клиента возникает ошибка "Interface not supported". Не могу понять в чем причина. Руководствовался дельфовой документацией - http://docwiki.embarcadero.com/RADSt...ver_Interfaces. WSDL импортировал. Сервер фурычит. Где я не так указал интерфейс?

SoapConnection - насколько мне известно это устаревшая реализация datasnap'овской трехзвенки....

В качестве простой альтернативы используйте стандартный WSDLImporter который сгенерирует вам модуль для подключения к веб-сервису и DTO к нему
...
Рейтинг: 0 / 0
24.04.2018, 12:33
    #39635276
Disite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов методов из soap модуля данных
X-Cite, модуль у меня уже сгенерирован через wsdlImporter. но как иначе устанавливать соединение с ВС если не через soapConnection или HTTPRIO?
...
Рейтинг: 0 / 0
24.04.2018, 12:39
    #39635281
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов методов из soap модуля данных
В сгенерированном модуле есть функция GetYourService().метод
при вызове метода он подключится, вызовет метод, отключится
...
Рейтинг: 0 / 0
24.04.2018, 13:02
    #39635300
Disite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов методов из soap модуля данных
X-Cite, ну это в случае, если мне нужно вызывать методы конкретно из веб-сервиса. А если из модуля данных? там же нету этой функции, если не ошибаюсь.
...
Рейтинг: 0 / 0
24.04.2018, 13:57
    #39635401
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов методов из soap модуля данных
так вы проектируете сервис как веб-сервис... например через тот же RIO... Есть wizard даже.. Create Soap Server
А то смешали в кучу кони, люди...
датамодуль с методами это датамодуль... вебсервис выставленный наружу и доступен ЛЮБЫМ клиентам это вебсервис.. они ничего про ваши датамодули и знать не должны....
...
Рейтинг: 0 / 0
24.04.2018, 15:15
    #39635469
Disite
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вызов методов из soap модуля данных
X-Cite, я вас понял, спасибо за разъяснения
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вызов методов из soap модуля данных / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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