how to add information about the Derived class for abstract data types present
in parmater for any service
----------------------------------------------------------------------------------------------------------
Key: AXIS2-3928
URL: https://issues.apache.org/jira/browse/AXIS2-3928
Project: Axis 2.0 (Axis2)
Issue Type: Test
Components: wsdl
Affects Versions: 1.4
Environment: Windows/ Weblogic
Reporter: Ankit Jain
Priority: Critical
Hi,
The parameters of the operation/service is abstract type so when I create the
instance it says Abstract type can not be instantiated.
I do not have any idea how to tell before the generation of the wsdl that this
are my derived class of abstract type and use them.
After doing some of the changes I generated the wsdl with the information about
my derived class. I have copied only the relevant information below. In the
below example my service is setBucketBarringIndicator. It takes 3 parameters
out of which BaseChannel is abstract and DtARChaneel is the one of the derived
class of this abstract type.
<wsdl:types>
<schema targetNamespace="http://datatypes.rpm.amdocs"
xmlns="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="http://domaindatatypes.rpm "/>
<xsd:import namespace="http://lang.java"/>
<xsd:import namespace="http://exceptions.acmarch "/>
<xsd:import namespace="http://webservices.fw.jf "/>
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType abstract="true" name="BaseChannel">
<sequence>
<element maxOccurs="1" minOccurs="0" name="requestDateTime"
nillable="true" type="xsd:dateTime"/>
<element maxOccurs="1" minOccurs="0" name="requestDateTimeNull"
type="xsd:boolean"/>
<element maxOccurs="1" minOccurs="0" name="requestDateTimeUnAssigned"
type="xsd:boolean"/>
</sequence>
</complexType>
<wsdl:message name="setBucketBarringIndicatorRequest">
<wsdl:part name="baseChannel" type="tns2:BaseChannel"/>
<wsdl:part name="activityDateInfo" type="tns2:ActivityDateInfo"/>
<wsdl:part name="header" type="tns8:JFWebServiceHeader"/>
</wsdl:message>
<complexType name="DtARChannel">
<complexContent>
<extension base="tns2:BaseChannel">
<sequence/>
</extension>
</complexContent>
</complexType>
<wsdl:operation name="setBucketBarringIndicator" parameterOrder="baseChannel
activityDateInfo header">
<wsdl:input message="impl:setBucketBarringIndicatorRequest"
name="setBucketBarringIndicatorRequest"/>
<wsdl:output message="impl:setBucketBarringIndicatorResponse"
name="setBucketBarringIndicatorResponse"/>
<wsdl:fault message="impl:RPMException" name="RPMException"/>
</wsdl:operation>
In my deploy.wsdd I have the below lines
<operation name="setBucketBarringIndicator"
qname="operNS:setBucketBarringIndicator"
xmlns:operNS="http://ws.api.interfaces.sessions.rpm " soapAction="" >
<parameter qname="baseChannel" type="tns:BaseChannel"
xmlns:tns="http://datatypes.rpm "/>
<parameter qname="activityDateInfo" type="tns:ActivityDateInfo"
xmlns:tns="http://datatypes.rpm "/>
<parameter qname="header" type="tns:JFWebServiceHeader"
xmlns:tns="http://webservices.fw.jf " mode="INOUT"/>
<fault name="RPMException" qname="fns:fault"
xmlns:fns="http://ws.api.interfaces.sessions.rpm.amdocs" class="
exceptions.RPMException" type="tns:RPMException"
xmlns:tns="http://exceptions.utils.rpm "/>
</operation>
Can you please help me to know that my wsdl and wsdd is correct?
When I use some tools to invoke my service and when I try to pass values to all
the parameter I get error as cannot create instance of abstract type. It is
creating the instance of abstract but it should do it for my derived class.
What should be done to pass info about derived class.
I would really appreciate your reply.
Thanks and Best Regards,
Ankit Jain
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]