Board index » delphi » SOAP Web Service in BDS 2006 Pro

SOAP Web Service in BDS 2006 Pro


2006-10-30 07:16:38 AM
delphi3
Hi,
Is it possible to create a SOAP web service in BDS 2006 professional, or does it require one of the bigger versions?
The Pro version has a SOAP Web Server wizard, but after I have created an ISAPI DLL I cannot get to the WSDL (the web server returns a 404 error), and I cannot seem to call the service from a client.
If I can not do this in the Pro version, does anyone have any suggestions for alternatives.
Simon.
 
 

Re:SOAP Web Service in BDS 2006 Pro

Hello Simon,
I believe SOAP support is in the Pro. If you can see the SOAP Web Server
wizard, then you should be OK.
The server returning 404 sounds like the ISAPI is not properly deployed.
What's the URL that you are using. Can you see the default page of the SOAP
service (something along the lines of what you see here:
tstsvr.achworks.com/testexec/tstsdncheck.tss ). It will list all the
interfaces (PortTypes) exposed by the Server.
We need a little more info. to investigate.
Cheers,
Bruneau.
 

Re:SOAP Web Service in BDS 2006 Pro

Hi,
Thanks for the reply.
I do see the default page, just like the one you linked to. However, if I click the WDSL link next to any of the interfaces I get the 404 error. I cannot access any of the interfaces from a client. I made the project using the SOAP web server wizard, and had it generate sample methods I can call.
I have tried it both as ISAPI and CGI with the same result. I am also unable to get any of the webservices demos that come with BDS to work. The EchoService demo, for example, displays a message 'The server returned an invalid or unrecognised response...' when I try and connect from the client.
It seems to me that it is unable to process the incoming request, and send back the response in a valid format. That leads me to think that perhaps the Pro version doesn't support the necessary XML stuff. It is odd that it compiles OK though.
Simon.
Jean-Marie Babet writes:
Quote
Hello Simon,

I believe SOAP support is in the Pro. If you can see the SOAP Web Server
wizard, then you should be OK.

The server returning 404 sounds like the ISAPI is not properly deployed.
What's the URL that you are using. Can you see the default page of the SOAP
service (something along the lines of what you see here:
tstsvr.achworks.com/testexec/tstsdncheck.tss ). It will list all the
interfaces (PortTypes) exposed by the Server.

We need a little more info. to investigate.

Cheers,

Bruneau.


 

Re:SOAP Web Service in BDS 2006 Pro

Hello Simon
Quote
I do see the default page, just like the one you linked to
OK, this seems that the server is deployed correctly.
Quote
However, if I click the WDSL link next to any of the interfaces I get the
404 error.
Will you just hover over any of the '[WSDL]' links and check the URL? In the
simple setup, the URL should be the same as the default page's URL with
'/wsdl/interface' added. These URLs are computed based on where the Service
thinks its running from. I just want to make sure there's no problem in that
computation.
Also, try going to the page manually. For example, say the default page is
'tstsvr.achworks.com/testexec/tstsdncheck.tss'. Just add '/wsdl' to
that in a browser and see if that page comes up - as in
'tstsvr.achworks.com/testexec/tstsdncheck.tss/wsdl '. It should list
all the WSDLs available from the server.
Quote
I have tried it both as ISAPI and CGI with the same result. I am also
unable to get any of the webservices demos
that come with BDS to work. The EchoService demo, for example, displays a
message 'The server returned
an invalid or unrecognised response...' when I try and connect from the
client.

It seems to me that it is unable to process the incoming request, and send
back the response in a valid format.
The fact that you can go to the default page confirms that the server can
handle requests. it is not a 'GET' vs. 'POST' issue since 'WSDLs', like the
default page, are accessed via 'GET. I am hoping that there's a problem
computing URLs and that manually going to the URL by tacking '/wsdl' to the
default page will help clarify.
Cheers,
Bruneau
 

Re:SOAP Web Service in BDS 2006 Pro

Hi Jean-Marie,
Thanks for the on-going help.
The links to the WDSL looks OK. The default page is 'http://localhost/svnet' and WDSL link is 'http://localhost/svnet/wsdl/Isvnetint'. The 'WSIL: Link to WS-Inspection document of Services here' shown at the bottom of the page also generates a 404 error when clicked.
I have created a project using the Web Application De{*word*81} in the SOAP Server wizard, and that worked fine. It is only when I generate either a ISAPI or CGI project that the WSDL links do not work. I am trying to use them in IIS 5.1. Would there be any settings that would affect things?
I am doing the following to install the ISAPI module:
1. Create a directory 'svnet' under c:\inetpub\wwwroot' and copied the ISAPI dll into this directory.
2. In the Internet Information Services application I show the properties of this directory.
3. Click 'Create' on the Directory tab to create an application name.
4. Click 'Configuration' on the same tab.
5. Add an ISAPI application mapping, specifying my DLL as the executable and '.*' as the extension
Should I be doing anything else?
When I browse to 'http://localhost/svnet' I see the default page, so obviously the DLL is being loaded, but maybe I have missed something else.
Any ideas?
Simon.
Jean-Marie Babet writes:
Quote
Hello Simon

>I do see the default page, just like the one you linked to

OK, this seems that the server is deployed correctly.


>However, if I click the WDSL link next to any of the interfaces I get the
404 error.

Will you just hover over any of the '[WSDL]' links and check the URL? In the
simple setup, the URL should be the same as the default page's URL with
'/wsdl/interface' added. These URLs are computed based on where the Service
thinks its running from. I just want to make sure there's no problem in that
computation.

Also, try going to the page manually. For example, say the default page is
'tstsvr.achworks.com/testexec/tstsdncheck.tss'. Just add '/wsdl' to
that in a browser and see if that page comes up - as in
'tstsvr.achworks.com/testexec/tstsdncheck.tss/wsdl '. It should list
all the WSDLs available from the server.


>I have tried it both as ISAPI and CGI with the same result. I am also
unable to get any of the webservices demos
>that come with BDS to work. The EchoService demo, for example, displays a
message 'The server returned
>an invalid or unrecognised response...' when I try and connect from the
client.
>It seems to me that it is unable to process the incoming request, and send
back the response in a valid format.

The fact that you can go to the default page confirms that the server can
handle requests. it is not a 'GET' vs. 'POST' issue since 'WSDLs', like the
default page, are accessed via 'GET. I am hoping that there's a problem
computing URLs and that manually going to the URL by tacking '/wsdl' to the
default page will help clarify.

Cheers,

Bruneau


 

Re:SOAP Web Service in BDS 2006 Pro

I have found that creating a virtual directory in IIS and setting the Execute Permissions to 'Scripts and Executables', I can get to the default page by specifying the ISAPI DLL in the url (e.g. 'http://localhost/project1/project1.dll') and then the WDSL links work. So, I guess it must be a problem with the IIS config. Any ideas?
Jean-Marie Babet writes:
Quote
Hello Simon

>I do see the default page, just like the one you linked to

OK, this seems that the server is deployed correctly.


>However, if I click the WDSL link next to any of the interfaces I get the
404 error.

Will you just hover over any of the '[WSDL]' links and check the URL? In the
simple setup, the URL should be the same as the default page's URL with
'/wsdl/interface' added. These URLs are computed based on where the Service
thinks its running from. I just want to make sure there's no problem in that
computation.

Also, try going to the page manually. For example, say the default page is
'tstsvr.achworks.com/testexec/tstsdncheck.tss'. Just add '/wsdl' to
that in a browser and see if that page comes up - as in
'tstsvr.achworks.com/testexec/tstsdncheck.tss/wsdl '. It should list
all the WSDLs available from the server.


>I have tried it both as ISAPI and CGI with the same result. I am also
unable to get any of the webservices demos
>that come with BDS to work. The EchoService demo, for example, displays a
message 'The server returned
>an invalid or unrecognised response...' when I try and connect from the
client.
>It seems to me that it is unable to process the incoming request, and send
back the response in a valid format.

The fact that you can go to the default page confirms that the server can
handle requests. it is not a 'GET' vs. 'POST' issue since 'WSDLs', like the
default page, are accessed via 'GET. I am hoping that there's a problem
computing URLs and that manually going to the URL by tacking '/wsdl' to the
default page will help clarify.

Cheers,

Bruneau


 

Re:SOAP Web Service in BDS 2006 Pro

Hello Simon,
I believe you will need to enable Execute permissions for the ISAPI or CGI
application to be accessible. At least, that is how I have IIS setup here.
I'll let someone else who's more IIS-savvy perhaps jump in here.
Cheers,
Bruneau.