I'm not sure I understand the issue. If your clients have access to
the WSDL document, then they have the service endpoints for all of
your services. There's no need for them to perform any type of
"magical discovery".

In any case, even if you can't expose a single port that implements
three different portTypes, you can specify the same endpoint in three
different ports.

Axis won't support this directly -- Axis will always create a
different endpoint for each port. But you can implement a proxy (also
known as a gateway) that accepts requests for all three types of
services and then redirects the requests to the appropriate endpoints.
This proxy can do lots of other things besides routing, such as
validation, transformation, monitoring, auditing, security, etc. This
is the way most web services management products work.

Anne

On 6/15/05, Ricardo Brito Da Rocha <[EMAIL PROTECTED]> wrote:
> 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?
> 
> 
>

Reply via email to