Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delphi SOAP Server - Document/Literal - Possible?

We're using Delphi2005 with Delphi2007 patches, also experimenting with DelphiXE SOAP libraries. But I've hit a snag... We've got an internal service that our app has been consuming for a year now. The service uses document/literal convention, and is used by several systems on several platforms (java, .Net, and ours - Delphi2005). Now we need to become a publisher and not just a consumer. So we're building a server service. And the WSDL is coming out wrong. I consume the "official" WSDL as document/literal, and when I try to serve it back as a service, it comes out as RPC style. Even though I've set the options of the HTTPSoapPascalInvoker.Converter to be [soLiteralParams, soDocument]. Now that I do some more searching, I find statements like this: "Delphi for Win32 does not support creating Document Literal Soap Servers." [ http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_22664248.html ]

That quote is a few years old. Does anyone know if it still applies?
I AM in a position to move this portion of the project to Delphi2010 or XE if necessary, but I'd rather not (throws a wrench into our automated build process). Including the SOAP libs is ok, and we already do that.

So, if anyone knows whether it's possible to write a Win32 Delphi web service in 2005, 2010 or XE that will produce a WSDL that conforms to document/literal, I'd be very, very happy.

like image 688
Chris Thornton Avatar asked Nov 29 '10 21:11

Chris Thornton


1 Answers

AFAIK, last time I checked, the stock Delphi SOAP Server was limited to RPC and the "official" motto was that you could use Delphi Prism to build your server (i.e. we won't add Doc|Lit in Delphi).
However, you can use the latest RemObjects SDK (not free) to build a Doc|lit SOAP Server, or use IndySOAP (open Source), but I don't know if there is a version compatible with D2009 and up (Unicode/Indy 10)...

like image 144
Francesca Avatar answered Oct 15 '22 22:10

Francesca