[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

ZSI receiving complex type problem

catherine_jervis

2/5/2008 7:29:00 PM

I have a ZSI client talking to a perl program through SOAP. The perl
program has defined a return type of $esmith::recExtend, where
esmith::recExtend is a complex type defined in the WSDL as follows:
<complexType name="EsmithRecExtend">
<sequence>
<element name="databasename" nillable="true" type="xsd:string">
</element>
<element name="key" nillable="true" type="xsd:string">
</element>
<element name="properties" nillable="true"
type="tns1:ArrayOfString">
</element>
<element name="values" nillable="true" type="tns1:ArrayOfString">
</element>
<element name="size" nillable="true" type="xsd:int">
</element>
</sequence>
</complexType>

The perl method returns an esmith::recExtend object as follows:

$record = esmith::recExtend->new('dbname, $dbkey, \@prop, \@value,
$size);
return SOAP::Data->name('get_recordReturn' => $record);

The ZSI file is expecting an EsmithRecExtend object to be returned in
get_recordReturn. However, executing the above code causes the
following error:

ZSI.EvaluationException: No Registered xsi:type=
(http://namespaces.soaplit..., esmith__recExtend), subsititue
for xsi:type=(http://localhost:esmith/SOAPWrapper, EsmithRecExtend)

If I return SOAP::Data->name('get_recordReturn' => $record)-
>type('http://localhost:/esmith/SOAPWrapper:EsmithRecExtend),
then a TypeError: unpack non sequence exception is thrown.

I believe that the TypeError: unpack non sequence is resulting because
the ZSI attempts to seperate the type into (namespace, type) with the
division between the two defined by the ' : ' character, which is
found
more than once in the given namespace.

Does anyone have any ideas on how to resolve this issue?

What do I do to return the complex type and have the
ZSI client understand it?

Thanks for any help!