Hi All, Axis2-WSDL2java doesn't seem to properly handle WSDLs with multiple service/port definitions referring to the 'SAME' binding.
Axis-1.2 generates multiple services in the above case with the same service impl. And a single server-config.wsdd carries all the service definitions. To fix the above issue may be we can generate a service.xml with multiple service definitions or can we have multiple 'service.xml's or does this point us to the service groups that was discussed sometime back? More generally how should multiple 'port' definitions be handled when they are referring to different 'bindings'? I have attached a sample wsdl. Thanks, -- Ruchith
<definitions xmlns:s1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://xmlsoap.org/Ping" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://xmlsoap.org/Ping" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <s:schema elementFormDefault="qualified" targetNamespace="http://xmlsoap.org/Ping"> <s:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"/> <s:element name="Ping" nillable="true" type="tns:ping"/> <s:complexType name="ping"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ticket" type="tns:ticketType"/> <s:element minOccurs="1" maxOccurs="1" name="text" nillable="true" type="s:string"/> </s:sequence> </s:complexType> <s:complexType name="ticketType"> <s:simpleContent> <s:extension base="s:string"> <s:attribute ref="s1:Id"/> </s:extension> </s:simpleContent> </s:complexType> <s:element name="PingResponse" nillable="true" type="tns:pingResponse"/> <s:complexType name="pingResponse"> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="text" nillable="true" type="s:string"/> </s:sequence> </s:complexType> </s:schema> <s:schema elementFormDefault="qualified" targetNamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <s:attribute name="Id" type="s:string"/> </s:schema> </types> <message name="PingRequest"> <part name="ping" element="tns:Ping"/> </message> <message name="PingResponse"> <part name="pingResponse" element="tns:PingResponse"/> </message> <portType name="PingPort"> <operation name="Ping"> <input message="tns:PingRequest"/> <output message="tns:PingResponse"/> </operation> </portType> <binding name="PingBinding" type="tns:PingPort"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Ping"> <soap:operation soapAction="Ping" style="document"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="PingService"> <port name="Ping1" binding="tns:PingBinding"> <soap:address location="http://localhost:9080/pingservice/Ping1"/> </port> <port name="Ping2" binding="tns:PingBinding"> <soap:address location="http://localhost:9080/pingservice/Ping2"/> </port> <port name="Ping2a" binding="tns:PingBinding"> <soap:address location="http://localhost:9080/pingservice/Ping2a"/> </port> <port name="Ping3" binding="tns:PingBinding"> <soap:address location="http://localhost:9080/pingservice/Ping3"/> </port> <port name="Ping4" binding="tns:PingBinding"> <soap:address location="http://localhost:9080/pingservice/Ping4"/> </port> <port name="Ping5" binding="tns:PingBinding"> <soap:address location="http://localhost:9080/pingservice/Ping5"/> </port> <port name="Ping6" binding="tns:PingBinding"> <soap:address location="http://localhost:9080/pingservice/Ping6"/> </port> <port name="Ping7" binding="tns:PingBinding"> <soap:address location="http://localhost:9080/pingservice/Ping7"/> </port> <port name="STPing1" binding="tns:PingBinding"> <soap:address location="http://localhost:9080/pingservice/STPing1"/> </port> <port name="STPing3" binding="tns:PingBinding"> <soap:address location="http://localhost:9080/pingservice/STPing3"/> </port> <port name="STPing4" binding="tns:PingBinding"> <soap:address location="http://localhost:9080/pingservice/STPing4"/> </port> </service> </definitions>
