Hi all. We've been thinking on how to properly have porttype composition
defined in WSDL and implemented in a web service, with some practical
restrictions of our own. The reason we post the issue here is that we would
like to understand how Axis deals with the limitations of WSDL 1.1 we found,
and how the Java2WSDL tool can be a help.

Please make additional comments on our approach and possible alternatives if
you have some.

Thanks in advance,
  Ricardo

Question: how to compose portTypes?

Goal: have one endpoint implementing multiple portTypes.

Constraints:
    We have several portTypes, describing various aspects
    of a service:
      - ServiceBase with a getVersion() method
      - File with create() and readDir() methods
      - Delegation with a doDelegation() method

    To simplify the life of the clients we only want to have
    _one_ endpoint exposed. We cannot assume that all clients
    would use our client code with some magical discovery of
    associated endpoints.

    ServiceBase and Delegation is described by WSDL files.

    File is described by a Java class and we use Axis 1.2's
    Java2WSDL to generate WSDL from it.

Discussion:
    According to our understanding of WSDL 1.1 ( 
    implemented by Axis and gSOAP) portType cannot extend
    other portTypes (it is a feature coming in WSDL 2.0).
    Also a port cannot have multiple portTypes (as it is linked with
    one binding, which is linked with one portType), so an 
    endpoint can have only one portType associated with it.

    Given these constraints we need a single portType,
    which merges the methods of ServiceBase, File and 
    Delegation.


    According to our understading we cannot do this merge
    in pure WSDL, so we need to do some pre-processing
    (see Globus Toolkit 4 also).

    The question is if it is worth doing at WSDL level,
    using some funny XSLT?
    Or is it possible to do this merge using Axis' 
    Java2WSDL --input or --importSchema options?

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to