AbstractBinding : maxOccurs unbounded on a MessagePart results in OutOfBounds 
exception
---------------------------------------------------------------------------------------

                 Key: XFIRE-1121
                 URL: http://jira.codehaus.org/browse/XFIRE-1121
             Project: XFire
          Issue Type: Improvement
          Components: Core
    Affects Versions: 1.2.6
         Environment: linux/solaris
            Reporter: jonathan schang
            Assignee: Dan Diephouse
            Priority: Minor
         Attachments: patch

when parsing the outputMessage for a wsdl operation where one of the 
messageParts is defined as a maxOccurs="unbounded" element of a sequence, and 
the return of the wsdl operation returns more than one of that element, xfire 
throws an IndexOutOfBounds exception because the messageParts are retrieved as 
elements from the list of messageParts rather than by QName.  all i did was 
change the operation from get(param) to use the getMessagePart(dr.getName()) 
method instead and everything's happy now.

attached is a patch for the AbstractBinding class

my wsdl message and return is:

message
+=======
<xs:element name="getMiscDataListResponse" type="getMiscDataListResponse" />
<xs:complexType name="getMiscDataListResponse">
        <xs:sequence>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="return" 
type="m33MiscData" />
                <xs:element minOccurs="0" name="resultReport" 
type="serviceResultReport" />
        </xs:sequence>
</xs:complexType>
, getMiscDataListResponse is later referred to as the out message for the wsdl 
operation

return
+===
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
<soap:Body>
<ns1:getMiscDataListResponse 
xmlns:ns1="http://www.tradermediausa.com/services/MilesExtension/2008/05";>
<return><businessSubsetID>0</businessSubsetID><dataType>INT</dataType><longName>Year</longName><miscDataID>10445</miscDataID><shortName>YR</shortName></return>
<return><businessSubsetID>0</businessSubsetID><dataType>TXT</dataType><longName>Make</longName><miscDataID>10446</miscDataID><shortName>MK</shortName></return>
<return><businessSubsetID>0</businessSubsetID><dataType>INT</dataType><longName>Length</longName><miscDataID>10447</miscDataID><shortName>LG</shortName></return>
<return><businessSubsetID>0</businessSubsetID><dataType>TXT</dataType><longName>Model</longName><miscDataID>10466</miscDataID><shortName>MD</shortName></return>
<return><businessSubsetID>0</businessSubsetID><dataType>INT</dataType><longName>Price</longName><miscDataID>10494</miscDataID><shortName>PR</shortName></return>
<!-- more nodes, but removed for brevity -->
<resultReport><passed>true</passed></resultReport></ns1:getMiscDataListResponse>
</soap:Body>
</soap:Envelope>"







-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to