One approach is to layer the Service Description across many WSDL documents and string them together using wsdl:imports.

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.




Reply via email to