powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / soapAction WSDL
12 сообщений из 12, страница 1 из 1
soapAction WSDL
    #39873128
Den94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Имею проблему написать soap-сервис по уже предоставленной wsdl. Сам сервис описан, но его описание не совпадает с предоставленным. Основная проблема с описанием soapAction, в дельфовой wsdl он выглядит как
...
Рейтинг: 0 / 0
soapAction WSDL
    #39873129
Den94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
<operation name="sendResponse">
<operation xmlns=" http://schemas.xmlsoap.org/wsdl/soap/" soapAction="urn:HIVRegistryIntf-Callback#sendResponse" style="rpc"/>
....
</operation>

а надо

<operation name="sendResponse">
<operation xmlns=" http://schemas.xmlsoap.org/wsdl/soap/" soapAction="sendResponse" style="rpc"/>
....
</operation>

можно поменять в OnAfterPublishingWSDL на нужное, но тогда при обращении к серверу выходит ошибка unknown soap action.
Как сделать описание нужным и работающим?
...
Рейтинг: 0 / 0
soapAction WSDL
    #39873249
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы использовали встроенный в Delphi WSDLImporter и он неверно сгенерировал Action?
...
Рейтинг: 0 / 0
soapAction WSDL
    #39873262
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АА.. вы делаете сервер, но подгоняете под готовую wsdl? какой ужас...
Попробуйте
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(IAAA), 'zzz');

но он выставит его для всех операций
...
Рейтинг: 0 / 0
soapAction WSDL
    #39873275
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще можно вот так, для каждой операции задать свой..
Код: pascal
1.
InvRegistry.RegisterAllSOAPActions(TypeInfo(IAAA), '|MyAction1|MyAction2|MyAction3|MyAction4');
...
Рейтинг: 0 / 0
soapAction WSDL
    #39873294
Den94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X-Cite,

Спасибо за ответ. Но не помогло, изменений в wsdl нет
...
Рейтинг: 0 / 0
soapAction WSDL
    #39873310
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажите код региастрации сервиса
и приложите wsdl что-ли
...
Рейтинг: 0 / 0
soapAction WSDL
    #39873324
Den94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
  TCallback = class(TInvokableClass, Callback)
  public
    function sendResponse(const id: string; const oid: string; const response: string): Status; stdcall;
  end;

 TSOAPCredentials = class(TSoapHeader)
 private
   fMessageID:string;
 public
   constructor Create; overload; override;
   constructor Create(AMessageID:string);  overload;

   function ObjectToSOAP(RootNode, ParentNode: IXMLNode;
                            const ObjConverter: IObjConverter;
                            const NodeName, NodeNamespace, ChildNamespace: InvString; ObjConvOpts: TObjectConvertOptions;
                            out RefID: InvString): IXMLNode; override;
 end;


.....
Код: pascal
1.
2.
3.
4.
5.
 
initialization
  InvRegistry.RegisterInvokableClass(TCallback);
  InvRegistry.RegisterHeaderClass(TypeInfo(TCallback), TSOAPCredentials);
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(TCallback), 'sendResponse');


сам wsdl висит на http://92.255.206.241:8100/wsdl/Callback
...
Рейтинг: 0 / 0
soapAction WSDL
    #39873437
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Den94,

InvRegistry.RegisterDefaultSOAPAction нужен TypeInfo интерфейса а не класса.
Какой интерфейс у вас отвечает за сервис, тот и нужно указать
...
Рейтинг: 0 / 0
soapAction WSDL
    #39873451
Den94
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X-CiteDen94,

InvRegistry.RegisterDefaultSOAPAction нужен TypeInfo интерфейса а не класса.
Какой интерфейс у вас отвечает за сервис, тот и нужно указать

Заработало вроде как, спасибо. Не подскажите какие-нибудь ресурсы по теме? Ато гугл упорно не хочет открывать мне этих секретов
...
Рейтинг: 0 / 0
soapAction WSDL
    #39873474
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Den94X-CiteDen94,

InvRegistry.RegisterDefaultSOAPAction нужен TypeInfo интерфейса а не класса.
Какой интерфейс у вас отвечает за сервис, тот и нужно указать

Заработало вроде как, спасибо. Не подскажите какие-нибудь ресурсы по теме? Ато гугл упорно не хочет открывать мне этих секретов

Метод самотыка и исследования исходников.
Например до сегодняшнего дня я понятия не имел о RegisterDefaultSOAPAction или RegisterAllSOAPActions.
Просто набрал InvRegistry. и в подсказке по логике подобрал что-нибудь похожее...
Потом по исходникам поискал # и посмотрел что происходит...

К сожалению справка и примеры по Delphi убогие на столько что отбивает желание у всех что-то пробовать...
...
Рейтинг: 0 / 0
soapAction WSDL
    #39873509
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-CiteМетод самотыка

интересно ....
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / soapAction WSDL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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