I'm not aware that there was a standard way. I don't think that the "?wsdl" suffix on a service URL is standard (though it may be a common convention). Our clients don't mind. Providing they have a URL to the WSDL, it doesn't really matter what that URL is. I'm not sure if this would work through UDDI, but we haven't got there yet.

I think you can turn off WSDL generation in the Axis config. In which case, the "?wsdl" URL wouldn't work. Otherwise, you could probably specify an "error page" for your WSDL, in the Axis config. I'm sure there is some way to avoid "?wsdl" returning WSDL for the service. Unfortunately, Axis doesn't let you specify an arbitrary WSDL URL in the <wsdlFile> element of the WSDD; if it did, you could redirect users to the WSDL serving servlet.

Tony



Doesn't this potentially cause problems as you are now publicizing your WSDL in a non-standard way?  If someone (as through habit) made a http://......?WSDL request, they would then get a file pointing to the wrong location.  Is this correct?
 
JDG
 
 
--
Jay Glanville
 
-----Original Message-----
From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent:
Wednesday, November 17, 2004 11:07 AM
To:
[EMAIL PROTECTED]
Subject:
Re: incorporating a web service into a web app without service address knowledge


On the second point, one approach we've used is to provide a servlet mapping for retrieving WSDLs. So we don't use the "?wsdl" approach, but provide a specific URL, which causes a servlet to be invoked. All our WSDLs use a service location of something like "http://localhost:nnnn/axis/services/MyService". The servlet used to retrieve WSDLs, then modifies the WSDL to change the location to the host serving the service (the same host as the WSDL retrieval servlet).


Reply via email to