WSDL импортер генерирует неисправный сервер - PullRequest
4 голосов
/ 20 апреля 2009

Я пытался запустить мыльный сервер, который реализует (это правильный термин?) Спецификацию wsdl, сделанную третьей стороной. Я использовал импортер Delphi wsdl. (Часть) сгенерированный код выглядит так:

miniPortType = interface(IInvokable)
['{824D172A-9C1F-D202-5B21-4C324553BCF0}']

  // Cannot unwrap: 
  // - Input element wrapper name does not match operation's name
  function miniService(const aMessage: MiniMessageType): MiniAnswerType; stdcall;
end;

При вызове сервер сообщает, что « Ни один метод с именем MiniMessageType не поддерживается интерфейсом miniPortType ».

Я могу заставить это работать, только сделав имя функции и имя основного элемента сообщения одинаковыми.

Я думаю, что должно быть возможно иметь разные имена. По крайней мере мыло не жалуется. И у меня фактически нет другого выбора, кроме как реализовать wsdl как есть. Кто-нибудь знает, как я могу обойти это?

Я использую Delphi 2007.

Спасибо, Миэль.

1 Ответ

1 голос
/ 20 апреля 2009

Если я правильно помню, интерфейс SOAP фактически определен в «таблице» внизу определений, и именно это используется для преобразования между типами Delphi и типами SOAP в коммуникациях. Я «исправлял» подобные вещи в прошлом, вручную изменяя вызовы построения таблиц, но вы должны быть осторожны, а также, возможно, потребуется изменить текст SOAP в соответствующей точке, чтобы все это соответствовало требованиям.

...