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>