WS-I basic profile expects developers to define one port per service. I think
the underlying philosphy is that each SOAP endpoint has one remote object and
all the operations on that endpoint work as methods on that one object.

I agree that this is limiting. It's often nice to aggregate ports.

On Mon, 29 Aug 2005, Deepak S Patwardhan wrote:

> HI all,
>
> My question is about the way axis makes a service URL. Normally, you see a
> URL like the following :
>
> http://host:unix-port/axis/services/PORT-NAME
>
> where, PORT-NAME is a port defined in the service element.
>
> Is it possible that the service URL be like this :
>
> http://host:unix-port/axis/services/SERVICE-NAME/PORT-NAME
>
> where SERVICE-NAME is the name of the service ? (attribute name of service
> element)
>
> This would look more logical, especially when a service contains multiple
> ports. I tried specifying such URLs in the WSDL but axis overrides it.
> (please see the attached WSDL.)
>
> WHen I deploy my service (service Primality, two ports, a) Prime - to
> check whether a number is prime, b) CoPrime - to check whether two numbers
> are coprime), and when I see the list of deployed services, I expected a
> listing like this
>
> * Primality
>    -  Prime
>           -   isPrime
>    -  CoPrime
>           -   areCoPrime
>
> But, what is displayed is as if there are two services, Prime and CoPrime.
>
> * Prime
>    - isPrime
> * CoPrimes
>    - areCoPrime
>
> It seems as if axis elevates a PORT to a service. What's the
> design decision behind this ? (And if you tell me that AXIS expects
> developers to define one port per service, I would be pretty p***ed off)
>
> thanks,
> Deepak S Patwardhan.
>
> --------------------------- WSDL -----------------------------
> <definitions name="PrimeDef"
>         targetNamespace="http://gridsolv.com/deepak/ws1/";
>         xmlns:tns="http://gridsolv.com/deepak/ws1/";
>         xmlns:xsd="http://www.w3.org/1999/XMLSchema";
>         xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
>         xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/";
>         xmlns="http://schemas.xmlsoap.org/wsdl/";>
>
>     <!--================================================-->
>     <message name="aNumber">
>         <part name="num" type="xsd:int"/>
>     </message>
>
>     <message name="twoNumbers">
>         <part name="num1" type="xsd:int"/>
>         <part name="num2" type="xsd:int"/>
>     </message>
>
>     <message name="aBool">
>         <part name="boo" type="xsd:boolean"/>
>     </message>
>
>     <!--================================================-->
>     <portType name="Prime">
>         <!-- Tell if a given number is prime -->
>         <operation name="isPrime">
>             <input message="tns:aNumber"/>
>             <output message="tns:aBool"/>
>         </operation>
>     </portType>
>
>     <portType name="CoPrime">
>         <!-- Tell if given numbers are co-prime -->
>         <operation name="areCoprime">
>             <input message="tns:twoNumbers"/>
>             <output message="tns:aBool"/>
>         </operation>
>     </portType>
>
>     <!--================================================-->
>     <binding name="PrimeSOAPBinding" type="tns:Prime">
>         <soap:binding style="rpc"
>                 transport="http://schemas.xmlsoap.org/soap/http"/>
>
>         <operation name="isPrime">
>             <soap:operation soapAction=""/>
>             <input>
>                 <soap:body use="encoded" encodingStyle="soap-enc"/>
>             </input>
>             <output>
>                 <soap:body use="encoded" encodingStyle="soap-enc"/>
>             </output>
>         </operation>
>     </binding>
>
>     <binding name="CoPrimeSOAPBinding" type="tns:CoPrime">
>         <soap:binding style="rpc"
>                 transport="http://schemas.xmlsoap.org/soap/http"/>
>
>         <operation name="areCoprime">
>             <soap:operation soapAction=""/>
>             <input>
>                 <soap:body use="encoded" encodingStyle="soap-enc"/>
>             </input>
>             <output>
>                 <soap:body use="encoded" encodingStyle="soap-enc"/>
>             </output>
>         </operation>
>     </binding>
>
>     <!--================================================-->
>     <service name="Primality">
>         <port name="Prime" binding="tns:PrimeSOAPBinding">
>             <soap:address
> location="http://localhost:8080/axis/services/Primality/Prime"/>
>         </port>
>         <port name="CoPrime" binding="tns:CoPrimeSOAPBinding">
>             <soap:address
> location="http://localhost:8080/axis/services/Primality/CoPrime"/>
>         </port>
>     </service>
>
> </definitions>
>

Guy Rixon                                       [EMAIL PROTECTED]
Institute of Astronomy                          Tel: +44-1223-337542
Madingley Road, Cambridge, UK, CB3 0HA          Fax: +44-1223-337523

Reply via email to