Sure, it's attached. 2008/7/21 Amila Suriarachchi <[EMAIL PROTECTED]>: > Can you send your wsdl? I think you use only Axis2 at the server side. > > thanks, > Amila. > > On Mon, Jul 21, 2008 at 10:06 AM, Matt Wlazlo <[EMAIL PROTECTED]> wrote: >> >> 2008/7/21 Amila Suriarachchi <[EMAIL PROTECTED]>: >> > >> > >> > On Mon, Jul 21, 2008 at 8:26 AM, Matt Wlazlo <[EMAIL PROTECTED]> wrote: >> >> >> >> Hi, >> >> >> >> I'm having trouble with passing inheritance types. I've followed this >> >> url: >> >> >> >> http://www.ibm.com/developerworks/websphere/techjournal/0401_brown/brown.html >> >> as a guide to WSDL inheritance, and everything seems to be working >> >> except that when it comes time to do a typecast, there doesn't appear >> >> to be any relationship of the objects... >> >> >> >> I think it will be easier to explain the situation in code: >> >> >> >> In my WSDL I have the following: >> >> >> >> <simpleType name="idType"> >> >> <restriction base="xsd:string"> >> >> <enumeration value="INFNUM" /> >> >> <enumeration value="SESSNUM" /> >> >> <enumeration value="CLIENTCD" /> >> >> </restriction> >> >> </simpleType> >> >> <complexType name="idSet"> >> >> <sequence> >> >> <element maxOccurs="1" minOccurs="1" name="idtype" >> >> type="xsd1:idType" /> >> >> <element maxOccurs="1" minOccurs="1" name="idvalue" >> >> type="xsd:string" /> >> >> </sequence> >> >> </complexType> >> >> <complexType name="idSetSess"> >> >> <complexContent> >> >> <extension base="xsd1:idSet"> >> >> <sequence> >> >> <element name="seqNum" type="xsd:string" >> >> /> >> >> </sequence> >> >> </extension> >> >> </complexContent> >> >> </complexType> >> >> ............. >> >> ............. >> >> <element name="get"> >> >> <complexType> >> >> <sequence> >> >> <element minOccurs="1" maxOccurs="unbounded" >> >> name="id" >> >> nillable="true" >> >> type="xsd1:idSet" >> >> /> >> >> </sequence> >> >> </complexType> >> >> </element> >> >> >> >> >> >> Then in my server code (the error is here): >> >> public get(IdSet[] ids) { >> >> ... >> >> for(int i = 0; i < id.length; i++) { >> >> IdSet id = ids[i]; >> >> if(id.getIdtype() == IdType.SESSNUM) { >> >> if(!(id instanceof IdSetSess)) >> >> throw new Exception("IdSetSess not used when IdType set >> >> to >> >> SESSNUM!"); // XXX id should be an instance of IdSetSess >> >> ..... >> >> ..... >> >> } >> >> } >> >> } >> >> >> >> On the wire, an example request is: >> >> <soapenv:Envelope >> >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> >> >> <soapenv:Body> >> >> <xsd:get xmlns:xsd="http://osr.nsw.gov.au/pillar/gen/xsd"> >> >> <xsd:id xsi:type="xsd:idSetSess" >> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> >> >> <xsd:idtype>SESSNUM</xsd:idtype> >> >> <xsd:idvalue>20004465</xsd:idvalue> >> >> <xsd:seqNum>141</xsd:seqNum> >> >> </xsd:id> >> >> <xsd:id> >> >> <xsd:idtype>INFNUM</xsd:idtype> >> >> <xsd:idvalue>7151999517</xsd:idvalue> >> >> </xsd:id> >> >> </xsd:get> >> >> </soapenv:Body> >> >> </soapenv:Envelope> >> >> >> >> >> >> >> >> The request on the wire looks to be to be OK. The expression "id >> >> instanceof IdSetSess" is always false, whereas I would expect it to be >> >> true. >> >> >> >> Do I need to do something special to be able to cast an IdSet to an >> >> IdSetSess? Is this even possible? >> >> >> >> >> >> Cheers, >> >> Matt. >> >> >> >> >> >> -- >> >> Reclaim your digital rights, eliminate DRM, learn more at >> >> http://www.defectivebydesign.org/what_is_drm >> >> >> >> -----BEGIN GEEK CODE BLOCK----- >> >> Version: 3.12 >> >> GCS d--- s: a C++++ UL+++ P+++ L+++++ E--- W++ N o-- K- w-- >> >> O M+ V PS+++ PE Y PGP t+ 5 X++ R !tv b+++ DI+ D++ >> >> G-- e++ h+ r+ y+++++ >> >> ------END GEEK CODE BLOCK------ >> >> >> >> >> >> Today's lucky number is: 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 >> >> C0 >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> > What is the Axis version you use? Axis1.x or Axis2.x >> >> Axis2 1.4 >> >> Cheers, >> Matt. >> >> >> >> -- >> Reclaim your digital rights, eliminate DRM, learn more at >> http://www.defectivebydesign.org/what_is_drm >> >> -----BEGIN GEEK CODE BLOCK----- >> Version: 3.12 >> GCS d--- s: a C++++ UL+++ P+++ L+++++ E--- W++ N o-- K- w-- >> O M+ V PS+++ PE Y PGP t+ 5 X++ R !tv b+++ DI+ D++ >> G-- e++ h+ r+ y+++++ >> ------END GEEK CODE BLOCK------ >> >> >> Today's lucky number is: 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> > > > > -- > Amila Suriarachchi, > WSO2 Inc.
-- Reclaim your digital rights, eliminate DRM, learn more at http://www.defectivebydesign.org/what_is_drm -----BEGIN GEEK CODE BLOCK----- Version: 3.12 GCS d--- s: a C++++ UL+++ P+++ L+++++ E--- W++ N o-- K- w-- O M+ V PS+++ PE Y PGP t+ 5 X++ R !tv b+++ DI+ D++ G-- e++ h+ r+ y+++++ ------END GEEK CODE BLOCK------ Today's lucky number is: 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0
<?xml version="1.0" encoding="UTF-8"?> <definitions targetNamespace="http://osr.nsw.gov.au/pillar/gen" xmlns:tns="http://osr.nsw.gov.au/pillar/gen" xmlns:xsd1="http://osr.nsw.gov.au/pillar/gen/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Pillar"> <documentation> Image storage and retrieval service </documentation> <types> <schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://osr.nsw.gov.au/pillar/gen/xsd" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <import namespace="http://www.w3.org/2005/05/xmlmime" schemaLocation="xsd0.xsd" /> <simpleType name="idType"> <restriction base="xsd:string"> <enumeration value="INFNUM" /> <enumeration value="SESSNUM" /> <enumeration value="CLIENTCD" /> </restriction> </simpleType> <complexType name="idSet"> <sequence> <element maxOccurs="1" minOccurs="1" name="idtype" type="xsd1:idType" /> <element maxOccurs="1" minOccurs="1" name="idvalue" type="xsd:string" /> </sequence> </complexType> <complexType name="idSetSess"> <complexContent> <extension base="xsd1:idSet"> <sequence> <element name="seqNum" type="xsd:string" /> </sequence> </extension> </complexContent> </complexType> <complexType name="pillarFaultType"> <all> <element name="Code" type="xsd:int" /> <element name="Description" type="xsd:string" /> </all> </complexType> <element name="pillarFaultResponse" type="xsd1:pillarFaultType" /> <element name="delete"> <complexType> <sequence> <element minOccurs="0" name="ifn" nillable="true" type="xsd:string" /> </sequence> </complexType> </element> <element name="put"> <complexType> <sequence> <element minOccurs="1" maxOccurs="unbounded" name="id" nillable="true" type="xsd1:idSet" /> <element minOccurs="0" maxOccurs="1" name="date" nillable="true" type="xsd:date" /> <element minOccurs="0" maxOccurs="1" name="backscan" type="xsd:boolean" /> <element minOccurs="0" maxOccurs="1" name="docType" nillable="true" type="xsd:integer" /> <element minOccurs="0" maxOccurs="1" name="batchNumber" nillable="true" type="xsd:string" /> <element minOccurs="0" maxOccurs="1" name="document" nillable="true" type="xmime:base64Binary" /> </sequence> </complexType> </element> <element name="get"> <complexType> <sequence> <element minOccurs="1" maxOccurs="unbounded" name="id" nillable="true" type="xsd1:idSet" /> <element minOccurs="0" maxOccurs="1" name="intersect" type="xsd:boolean" /> </sequence> </complexType> </element> <element name="getResponse"> <complexType> <sequence> <element maxOccurs="unbounded" minOccurs="0" name="out" type="xmime:base64Binary"> </element> </sequence> </complexType> </element> </schema> </types> <message name="pillarFaultResponse"> <part name="fault" element="xsd1:pillarFaultResponse" /> </message> <message name="getRequest"> <part name="parameters" element="xsd1:get" /> </message> <message name="getResponse"> <part name="parameters" element="xsd1:getResponse" /> </message> <message name="putRequest"> <part name="parameters" element="xsd1:put" /> </message> <message name="putResponse" /> <message name="deleteRequest"> <part name="parameters" element="xsd1:delete" /> </message> <message name="deleteResponse" /> <portType name="PillarPortType"> <operation name="delete"> <input name="delete" message="tns:deleteRequest" wsaw:Action="urn:delete" /> <output name="deleteResponse" message="tns:deleteResponse" wsaw:Action="urn:deleteResponse" /> <fault name="pillarFault" message="tns:pillarFaultResponse" wsaw:Action="urn:pillarFault" /> </operation> <operation name="put"> <input name="put" message="tns:putRequest" wsaw:Action="urn:put" /> <output name="putResponse" message="tns:putResponse" wsaw:Action="urn:putResponse" /> <fault name="pillarFault" message="tns:pillarFaultResponse" wsaw:Action="urn:pillarFault" /> </operation> <operation name="get"> <input name="get" message="tns:getRequest" wsaw:Action="urn:get" /> <output name="getResponse" message="tns:getResponse" wsaw:Action="urn:getResponse" /> <fault name="pillarFault" message="tns:pillarFaultResponse" wsaw:Action="urn:pillarFault" /> </operation> </portType> <binding name="PillarPortBinding" type="tns:PillarPortType"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation name="delete"> <soap:operation soapAction="delete" style="document" /> <input> <soap:body use="literal" namespace="http://osr.nsw.gov.au/pillar" /> </input> <fault name="pillarFault"> <soap:fault name="pillarFault" use="literal" namespace="http://osr.nsw.gov.au/pillar" /> </fault> </operation> <operation name="put"> <soap:operation soapAction="put" style="document" /> <input> <soap:body use="literal" namespace="http://osr.nsw.gov.au/pillar" /> </input> <fault name="pillarFault"> <soap:fault name="pillarFault" use="literal" namespace="http://osr.nsw.gov.au/pillar" /> </fault> </operation> <operation name="get"> <soap:operation soapAction="get" style="document" /> <input> <soap:body use="literal" namespace="http://osr.nsw.gov.au/pillar" /> </input> <output> <soap:body use="literal" namespace="http://osr.nsw.gov.au/pillar" /> </output> <fault name="pillarFault"> <soap:fault name="pillarFault" use="literal" namespace="http://osr.nsw.gov.au/pillar" /> </fault> </operation> </binding> <service name="Pillar"> <port name="PillarPort" binding="tns:PillarPortBinding"> <soap:address location="http://127.0.0.1:8180/Pillar/services/Pillar.PillarEndpoint" /> </port> </service> </definitions>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
