You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by keith chapman <ke...@gmail.com> on 2009/04/23 16:35:00 UTC

Re: Need Guidance in writing services.xml for axis 2 aar for WSDL with multiple ports

Hi,

Although WSDL (1.1) allows multiple ports to implement several bindings this
is not supported by Axis2. When Axis2 builds a service using a WSDL it only
looks at a single port and picks the operations corresponding to that
binding.

I think having multiple ports implement several bindings is a bad practice,
(BTW WSDL 2.0 does not let you do this, endpoints of a service need to refer
to the same interface).

Thanks,
Keith.

On Thu, Apr 23, 2009 at 12:38 PM, Hitender <hi...@gmail.com> wrote:

>
> I have WSDL which have multiple ports
>    <wsdl:service name = "PearsonPersonManagementServiceSync">
>        <wsdl:port name = "PersonManagementServiceSyncSoap" binding =
> "imsp:PersonManagementServiceSyncSoap">
>            <soap:address location =
> "http://imsglobal.org/services/PersonManagementService/"/>
>        </wsdl:port>
>        <wsdl:port name = "PearsonPersonManagementServiceSyncSoap" binding =
> "tns:PearsonPersonManagementServiceSyncSoap">
>            <soap:address location =
> "http://imsglobal.org/services/PersonManagementService/"/>
>        </wsdl:port>
>    </wsdl:service>
>
> And here binding tns:PearsonPersonManagementServiceSyncSoap has only one
> operation which is existsPerson
>
> and imsp:PersonManagementServiceSyncSoap has multiple operations like
> createPerson, updatePerson etc.
>
> Now I have to implement this WSDL and I am planning to have only one
> Service
> CLASS with all the required methods
> existsPerson, createPerson etc.
>
> I am having difficulties in writing services.xml file for this service.
> I have created following services.xml
>
> <service name="PearsonPersonManagementServiceSync" scope="application">
>        <parameter name="useOriginalwsdl">true</parameter>
>        <parameter name="modifyUserWSDLPortAddress">true</parameter>
>        <description>TPI Person Management Service</description>
>        <messageReceivers>
>                <messageReceiver mep="
> http://www.w3.org/2004/08/wsdl/in-only"
> class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
>                <messageReceiver  mep="
> http://www.w3.org/2004/08/wsdl/in-out"
> class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
>        </messageReceivers>
>        <parameter
>
> name="ServiceClass">com.pearson.ebook.tpi_services.pms.PearsonPersonManagementServiceSync</parameter>
> </service>
>
> Here I am getting exception that "There is no port type associated with
> binding" when deploying the aar file.
>
> I have attached services.xml and WSDL File for reference.
> Any help will be appreciated.
>
> Thanks
> Hitender
>
> http://www.nabble.com/file/p23191471/PearsonPersonManagementServiceSync.wsdl
> PearsonPersonManagementServiceSync.wsdl
> http://www.nabble.com/file/p23191471/services.xml services.xml
> --
> View this message in context:
> http://www.nabble.com/Need-Guidance-in-writing-services.xml-for-axis-2-aar-for-WSDL-with-multiple-ports-tp23191471p23191471.html
> Sent from the Axis - User mailing list archive at Nabble.com.
>
>


-- 
Keith Chapman
Senior Software Engineer
WSO2 Inc.
Oxygenating the Web Service Platform.
http://wso2.org/

blog: http://www.keith-chapman.org

Re: Need Guidance in writing services.xml for axis 2 aar for WSDL with multiple ports

Posted by Hitender <hi...@gmail.com>.
Thanks for clarification.
Is there any some workaround to achieve this.

Thanks
Hitender


Keithgchapman wrote:
> 
> Hi,
> 
> Although WSDL (1.1) allows multiple ports to implement several bindings
> this
> is not supported by Axis2. When Axis2 builds a service using a WSDL it
> only
> looks at a single port and picks the operations corresponding to that
> binding.
> 
> I think having multiple ports implement several bindings is a bad
> practice,
> (BTW WSDL 2.0 does not let you do this, endpoints of a service need to
> refer
> to the same interface).
> 
> Thanks,
> Keith.
> 
> On Thu, Apr 23, 2009 at 12:38 PM, Hitender <hi...@gmail.com> wrote:
> 
>>
>> I have WSDL which have multiple ports
>>    <wsdl:service name = "PearsonPersonManagementServiceSync">
>>        <wsdl:port name = "PersonManagementServiceSyncSoap" binding =
>> "imsp:PersonManagementServiceSyncSoap">
>>            <soap:address location =
>> "http://imsglobal.org/services/PersonManagementService/"/>
>>        </wsdl:port>
>>        <wsdl:port name = "PearsonPersonManagementServiceSyncSoap" binding
>> =
>> "tns:PearsonPersonManagementServiceSyncSoap">
>>            <soap:address location =
>> "http://imsglobal.org/services/PersonManagementService/"/>
>>        </wsdl:port>
>>    </wsdl:service>
>>
>> And here binding tns:PearsonPersonManagementServiceSyncSoap has only one
>> operation which is existsPerson
>>
>> and imsp:PersonManagementServiceSyncSoap has multiple operations like
>> createPerson, updatePerson etc.
>>
>> Now I have to implement this WSDL and I am planning to have only one
>> Service
>> CLASS with all the required methods
>> existsPerson, createPerson etc.
>>
>> I am having difficulties in writing services.xml file for this service.
>> I have created following services.xml
>>
>> <service name="PearsonPersonManagementServiceSync" scope="application">
>>        <parameter name="useOriginalwsdl">true</parameter>
>>        <parameter name="modifyUserWSDLPortAddress">true</parameter>
>>        <description>TPI Person Management Service</description>
>>        <messageReceivers>
>>                <messageReceiver mep="
>> http://www.w3.org/2004/08/wsdl/in-only"
>> class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
>>                <messageReceiver  mep="
>> http://www.w3.org/2004/08/wsdl/in-out"
>> class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
>>        </messageReceivers>
>>        <parameter
>>
>> name="ServiceClass">com.pearson.ebook.tpi_services.pms.PearsonPersonManagementServiceSync</parameter>
>> </service>
>>
>> Here I am getting exception that "There is no port type associated with
>> binding" when deploying the aar file.
>>
>> I have attached services.xml and WSDL File for reference.
>> Any help will be appreciated.
>>
>> Thanks
>> Hitender
>>
>> http://www.nabble.com/file/p23191471/PearsonPersonManagementServiceSync.wsdl
>> PearsonPersonManagementServiceSync.wsdl
>> http://www.nabble.com/file/p23191471/services.xml services.xml
>> --
>> View this message in context:
>> http://www.nabble.com/Need-Guidance-in-writing-services.xml-for-axis-2-aar-for-WSDL-with-multiple-ports-tp23191471p23191471.html
>> Sent from the Axis - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> Keith Chapman
> Senior Software Engineer
> WSO2 Inc.
> Oxygenating the Web Service Platform.
> http://wso2.org/
> 
> blog: http://www.keith-chapman.org
> 
> 

-- 
View this message in context: http://www.nabble.com/Need-Guidance-in-writing-services.xml-for-axis-2-aar-for-WSDL-with-multiple-ports-tp23191471p23220361.html
Sent from the Axis - User mailing list archive at Nabble.com.