[AG-DEV] Stuck with ZSI dictionary treatment in SOAP calls

Thomas D. Uram turam at mcs.anl.gov
Tue Mar 21 09:26:20 CST 2006


Since you "don't use a dictionary anymore" you have presumably changed
the WSDL.  Have you re-generated the interfaces (using tools/GenerateInterfaces.py)
since you changed the WSDL to not use dictionaries?  If so, I would check
in AccessGrid/interfaces/AccessGrid_Types.py to see how DirectoryDescription
is represented.

Tom


On 3/21/06 9:20 AM, Michael Braitmaier wrote:
> I got quite far with the data store so far. Now I wanted to propagate 
> the event that a new directory has been added which requires me to
> send an object of type DirectoryDescription:
> 
> <xs:complexType name="DirectoryDescription">
>      <xs:sequence>
>        <xs:element name="id" type="xs:string"/>
>        <xs:element name="name" type="xs:string"/>
>        <xs:element name="description" nillable="true" type="xs:string"/>
>        <xs:element name="uri" nillable="true" type="xs:string"/>
>        <xs:element name="status" nillable="true" type="xs:string"/>
>        <xs:element name="size" nillable="true" type="xs:int"/>
>        <xs:element name="checksum" nillable="true" type="xs:string"/>
>        <xs:element name="owner" nillable="true" type="xs:string"/>
>        <xs:element name="type" nillable="true" type="xs:string"/>
>        <xs:element name="lastModified" nillable="true" type="xs:string"/>
>        <xs:element name="parentId" nillable="true" type="xs:string"/>
>    <xs:element name="Level" nillable="true" type="xs:string"/>
>        <xs:element name="location" nillable="true" type="xs:string"/>
>        <xs:element name="dataContainer" nillable="true" minOccurs="0" 
> maxOccurs="unbounded" type="xs:string"/>
>    <xs:element name="objectType" nillable="true" type="xs:int"/>
>      </xs:sequence>
>    </xs:complexType>
> 
> This object contains a list called dataContainer, which is nothing more 
> than a list of strings with IDs.
> When I now call the statement for sending the event in the Venue:
> 
> #Send event to clients
> self.eventClient.Send(Event.ADD_DIR,locDataDesc)
> 
> I get a ZSI exception:
> ZSI.FaultException: Processing Failure
> ZSI:EvaluateException
> Serializing EventDescription.data, EvaluateException Serializing 
> dictionaries not implemented when processContents="strict".  Try as a 
> list or use processContents="lax".
> 
> I am really confused about that, because I don't use a dictionary 
> anymore, but a list.
> Can anybody tell em or give me a hint what I am doing wrong. Are there 
> cases where ZSI considers a list being treated like a dictionary?
> How can I work around it?
> 
> Michael
> 




More information about the ag-dev mailing list