service.wsdl -import-> bindings.wsdl -import-> abstract.wsdl
1. service.wsdl only the service entries. 2. binding.wsdl contains only the wsdl:bindings 3. abstract.wsdl contains the portTypes, messages and types section.
Now you can create different service.wsdl document with different soap:address attribute values without changing anything else.
Of course wsdl:import is not universally well implemented.
Jim Murphy Mindreef, Inc.
[EMAIL PROTECTED] wrote:
It may not be necessary to create multiple WSDL files. You can define multiple ports within a single service, each for http and https referencing the same wsdl binding. When you generate stubs for this WSDL via WSDL2Java, you should get 2 distinct ports, each for http & https.
<service> <port name="..." binding="...."> <soap:address location="http......."/> </port> <port name="..." binding="...."> <soap:address location="https......."/> </port> </service>
Not sure if this is the accepted/standard way to tackle this problem. I don't think the WS-I Basic profile addresses this issue either, other than saying that an instance may require the use of https. Would love to hear other folks' opinion about this matter.
- Junaid
Bill Werth <[EMAIL PROTECTED] om> To "'[EMAIL PROTECTED]'" 07/12/2004 01:29 <[EMAIL PROTECTED]> PM cc Subject Please respond to RE: Axis client with https [EMAIL PROTECTED] he.org
Thanks. I'll keep that in mind if we go to production code with this.
Although none of the links below seem to explain how to set up using https without setting the url in the WSDL file. Being somewhat green in how Tomcat works, "You can make any Web service available on https based only on configuration", doesn't explain anything to me at this point.
Looks like I need to read up on how to configure web apps in Tomcat.
-----Original Message----- From: Michael Binz [mailto:[EMAIL PROTECTED] Sent: Monday, July 12, 2004 10:07 AM To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: RE: Axis client with https
Bill, Matthias
Yes, that is what I did. You need to create a new WSDL file that has the https endpoint url. I created my WSDL with Java2WSDL, so I only changed the -l parameter to the new url. Be sure that you use the same server name as will be used when you create the SSL certificate which now will be required on your client PC. I used "https://bwerth2:8443" (with axis, etc. added
of
course).
You are not *required* to modify the WSDL in order to use https. While this certainly works, production grade applications normally read their target URLs from the configuration and are not using the URL specified in WSDL. And it would be a bad thing if one had to change the formal interface description as soon as one of the elements of the target URL changes.
You can make any Web service available on https based only on configuration:
The required steps to support https for a given WS are:
(1) Configure your web server to support https. (2) Generate a certificate and use that on server side. (3) Configure the same certificate to be used on client side. (4) On jdk1.3 make sure that jsse is installed.
The following links should help:
http://www.ftponline.com/javapro/2003_08/online/webservices_jclune_08_25_03/
http://www.ftponline.com/javapro/2003_09/online/jclune_09_10_03/ http://www.ftponline.com/javapro/2003_09/online/jclune_09_17_03/default.aspx
http://www.informit.com/articles/article.asp?p=24604
Best wishes, Michael.