Delphi SOAP Server-документ / литерал-возможно?

мы используем Delphi2005 с патчами Delphi2007, также экспериментируя с библиотеками мыла DelphiXE. Но я попал в затруднительное положение... У нас есть внутренняя служба, которую наше приложение потребляет уже год. Служба использует соглашение документа / литерала и используется несколькими системами на нескольких платформах (java, .Net и ours - Delphi2005). Теперь нам нужно стать издателем, а не просто потребителем. Итак, мы создаем серверную службу. И WSDL выходит неправильно. Я потреблять "официальный" WSDL как документ / литерал, и когда я пытаюсь вернуть его в качестве службы, он выходит как стиль RPC. Хотя я установил параметры HTTPSoapPascalInvoker.Преобразователь в [soLiteralParams, soDocument]. Теперь, когда я делаю еще несколько поисков, я нахожу такие утверждения:: "Delphi для Win32 не поддерживает создание серверов Soap с литералами документов." [ http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_22664248.html ]

Это цитата несколько лет. Кто-нибудь знает, применимо ли это до сих пор?
Я в состоянии переместить эту часть проекта в Delphi2010 или XE, если это необходимо, но я бы предпочел (бросает ключ в наш автоматизированный процесс сборки). Включая мыло libs в порядке, и мы уже делаем это.

Итак, если кто-нибудь знает, можно ли написать веб-службу Win32 Delphi в 2005, 2010 или XE, которая произведет WSDL, соответствующий документу/литералу, я был бы очень, очень счастлив.

2 ответов


AFAIK, последний раз, когда я проверял, запас Delphi SOAP Server был ограничен RPC, а" официальным " девизом было то, что вы можете использовать Delphi Prism для создания своего сервера (т. е. мы не будем добавлять Doc|Lit в Delphi).
Однако вы можете использовать последний REMOBJECTS SDK (не бесплатный) для создания сервера DOC|lit SOAP или использовать IndySOAP (с открытым исходным кодом), но я не знаю, есть ли версия, совместимая с D2009 и выше (Unicode/Indy 10)...


можно использовать WST. Он совместим с Delphi. Лучше проверить из svn, поскольку выпуск 0.5 фактически устарел.