Link to home
Start Free TrialLog in
Avatar of Rayden_The_God
Rayden_The_God

asked on

delphi web service

Hello all , I am trying to create a delphi web service that is Document|Literal (not the default rpc|Encoded)
if anyone could help me please do , any answer is accepted (even "it can't be done") as long as you give me some links
Avatar of developmentguru
developmentguru
Flag of United States of America image

I tried looking into Delphi 2007 and found a File | New | Other - Delphi Projects | WebServices - SOAP Server Application.  Once you have a project of this type open you will also find the following items under WebServices

SOAP Server Data Module
SOAP Server Interface
WSDL Importer

When Delphi is done setting up your project Unit1 has three controls on it.  The HTTPSoapPascalInvoker1 component has an Converter property with an Options property.  Among the options I see soDocument and soLiteralParams.  Not being familiar with doing a SOAP service (I have yet to find the need), This looks like a good start on what you are asking for.  With a little experimentation I think you could take it from here.  Let me know.
Avatar of Rayden_The_God
Rayden_The_God

ASKER

Actualy , those options seem to have no effect on the binding method described in the WSDL , what I am trying to obtain in the WSDL is something like this:
<wsdlsoap:binding style="document"
<wsdlsoap:body use="literal"
After some searching I found this article
http://conferences.codegear.com/kr/article/32245

containing this in the WSDL

          <wsdl:binding name="PigLatinSoapBinding" type="impl:PigLatin">
-->          <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
              <wsdl:operation name="latin">
                <wsdlsoap:operation soapAction=""/>
                 <wsdl:input name="latinRequest">
-->                <wsdlsoap:body use="literal"/>
                 </wsdl:input>
                 <wsdl:output name="latinResponse">
                   <wsdlsoap:body use="literal"/>
                </wsdl:output>
              </wsdl:operation>
           </wsdl:binding>

This should do it, let me know
I do not see where in this article are the instructions on how to create a webservice document|literal , it seems to me that it's more JBuilder than delphi :( , I need to do it in delphi
I develop using Borland Delphi 7
and File->New->Other->Web Services->SOAP Server Application
Is what i have used to develop my web services.

You provide a interface name and make sure you check mark [Sample Methods] and Comments.

and this is easy enough to develop it.

Now
once you compile it runs a dos screen with wsdl details.

if you want to execute and see the details

just create a virtual directory in IIS with "Execute" Cgi/bin application permission

and make the project folder as source folder for this. [you can also change the output directory and make only exe file to be exposed]

now

goto IE/ or any browser

http://localhost/[your virtual directory name]/yourapplication.exe

this would give you your interface name and click on wsdl to see the wsdl defination.

i think i explained then making more confusing... :)





ASKER CERTIFIED SOLUTION
Avatar of developmentguru
developmentguru
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Forced accept.

Computer101
EE Admin