Board index » delphi » implmenting soap services without importing WSDL

implmenting soap services without importing WSDL

I want to use a soap service WITHOUT import a WSDL and creating a unit.

Is there no way to use SOAP just with RTTI. I dont want to create a unit and
then add it to the uses clause.

Thanks,

Zayin Krige

 

Re:implmenting soap services without importing WSDL


Hello Zayin,

You don't have to use the importer generate a binding. The Delphi WSDL
importer (like the .NET or Java's Axis importers) just makes it easier to
encode WSDL/XML data for a particular SOAP runtime. For a simple service you
can write the interface and register it by hand. If your objection is to
having an external unit, you can also use the importer and then cut & paste
whatever you need into your own unit.

Let me know what you're after and we'll find a solution.

Cheers,

Bruneau

Re:implmenting soap services without importing WSDL


Hi,

I understand that binding it using the WSDL importer makes it easier for
coding, as the methods and properties are now accessible using code
completion. However, I would prefer to do it without binding.

instead of (httprio as MapObject).GetNewMap i want to do it like this
HTTPRIO.CallSoapService('GetNewMap');

I hope I'm making sense :)

thanks,

Quote
"Jean-Marie Babet" <bba...@borland.com> wrote in message

news:48597600@newsgroups.borland.com...
Quote
> Hello Zayin,

> You don't have to use the importer generate a binding. The Delphi WSDL
> importer (like the .NET or Java's Axis importers) just makes it easier to
> encode WSDL/XML data for a particular SOAP runtime. For a simple service
> you
> can write the interface and register it by hand. If your objection is to
> having an external unit, you can also use the importer and then cut &
> paste
> whatever you need into your own unit.

> Let me know what you're after and we'll find a solution.

> Cheers,

> Bruneau

Re:implmenting soap services without importing WSDL


I started to develop one unit, that can handle web services at run time. The
goal was to enable user to decide to what web service to connect. I did some
things, but some are still missing. Does anyone know of that kind of unit
that is complete. If not, perhaps I can share my and perhaps we could
upgrade it to support datasets and other stuff. For now it only supports web
services with simple parameters.

Grega

Quote
"Zayin Krige" <za...@allsoftware.co.za> wrote in message

news:4859f3fa@newsgroups.borland.com...
Quote
> Hi,

> I understand that binding it using the WSDL importer makes it easier for
> coding, as the methods and properties are now accessible using code
> completion. However, I would prefer to do it without binding.

> instead of (httprio as MapObject).GetNewMap i want to do it like this
> HTTPRIO.CallSoapService('GetNewMap');

> I hope I'm making sense :)

> thanks,

> "Jean-Marie Babet" <bba...@borland.com> wrote in message
> news:48597600@newsgroups.borland.com...
>> Hello Zayin,

>> You don't have to use the importer generate a binding. The Delphi WSDL
>> importer (like the .NET or Java's Axis importers) just makes it easier to
>> encode WSDL/XML data for a particular SOAP runtime. For a simple service
>> you
>> can write the interface and register it by hand. If your objection is to
>> having an external unit, you can also use the importer and then cut &
>> paste
>> whatever you need into your own unit.

>> Let me know what you're after and we'll find a solution.

>> Cheers,

>> Bruneau

Re:implmenting soap services without importing WSDL


Hello Zayin (and Grega),

Yes, your request makes total sense. It used to be a very common one when
Delphi SOAP first came out. And back then I used to recommend ROPE (later
renamed to MS SOAP Toolkit). It's a COM-based [hence usable from Delphi]
solution that allowed what I'll call a late-binding approach to invoking a
Web Service. Unfortunately, I believe that MS has discontinued the MS SOAP
Toolkit. It might still be downloadable but no longer supported?? I have not
kept track of it lately.

Another library you might want to consider is PocketSOAP
(http://www.pocketsoap.com/) . It also is a COM-based library and does allow
late-binding. PocketSOAP seems to be very feature-rich and keeps up with the
latest standard.

On the Java side there are many libraries that offer late-binding but they
are not easily accessible to Delphi.

Since the Delphi SOAP runtime is tied-to/driven-by RTTI, you need to have a
static binding that the compiler can generate RTTI from. For simple
services, a WSDL parser and an XML DOM is sufficient to generate a request
and parse a response. But things can get complex [multiref data,
attachments, etc] very quickly.

Let us know if you find other libraries/solutions to this. I have not
researched this item recently and would love to hear about Delphi-accessible
solutions out there.

Cheers,

Bruneau

Other Threads