History | Log In     View a printable version of the current page.  
Issue Details (XML)

Key: SDK-14871
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: C C
Assignee: Steven Erat
Reporter: Yevgen
Votes: 7
Watchers: 13
Operations

If you were logged in you would be able to see more operations.
Flex SDK

Not possible receive (from webservice) the complex object

Created: 12/13/07 08:58 AM   Updated: 08/07/08 02:33 PM
Component/s: RPC: WebService
Security Level: Public (All JIRA Users )

Issue Links:
Cloners
This issue is cloned by:
FB-11637 CLONE -Not possible receive (from web... None Closed
 

Severity: Incorrectly Functioning with Workaround
Reproducibility: Every Time
Discoverability: High
Milestone: SDK Flex 3.1.0
Affected OS(s): All OS Platforms
Steps to Reproduce:
my wsdl

<wsdl:definitions targetNamespace="http://test.flex">
<wsdl:documentation>
        Test Service
    </wsdl:documentation>

<wsdl:types>

<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://test.misc.services.webservices.comosoft.com/xsd">
<xs:element name="TestObjs" type="ax211:TestObjs"/>

<xs:complexType name="TestObjs">

<xs:sequence>
<xs:element name="aa" type="xs:int"/>
<xs:element maxOccurs="unbounded" name="items" nillable="true" type="ax211:TestObj"/>
</xs:sequence>
</xs:complexType>
<xs:element name="TestObj" type="ax211:TestObj"/>

<xs:complexType name="TestObj">

<xs:sequence>
<xs:element name="userName" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://test.flex/xsd">

<xs:element name="getTest">

<xs:complexType>

<xs:sequence>
<xs:element name="sid" nillable="true" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="getTestResponse">

<xs:complexType>

<xs:sequence>
<xs:element name="return" nillable="true" type="ns0:TestObjs"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>

<wsdl:message name="getTestMessage">
<wsdl:part name="part1" element="ns1:getTest"/>
</wsdl:message>

<wsdl:message name="getTestResponse">
<wsdl:part name="part1" element="ns1:getTestResponse"/>
</wsdl:message>

<wsdl:portType name="TestServicePortType">

<wsdl:operation name="getTest">
<wsdl:input message="axis2:getTestMessage" wsaw:Action="urn:getTest"/>
<wsdl:output message="axis2:getTestResponse"/>
</wsdl:operation>
</wsdl:portType>

<wsdl:binding name="TestServiceSOAP11Binding" type="axis2:TestServicePortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>

<wsdl:operation name="getTest">
<soap:operation soapAction="urn:getTest" style="document"/>

<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>

<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

<wsdl:binding name="TestServiceSOAP12Binding" type="axis2:TestServicePortType">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>

<wsdl:operation name="getTest">
<soap12:operation soapAction="urn:getTest" style="document"/>

<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>

<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

<wsdl:binding name="TestServiceHttpBinding" type="axis2:TestServicePortType">
<http:binding verb="POST"/>

<wsdl:operation name="getTest">
<http:operation location="getTest"/>

<wsdl:input>
<mime:content type="text/xml"/>
</wsdl:input>

<wsdl:output>
<mime:content type="text/xml"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

<wsdl:service name="TestService">

<wsdl:port name="TestServiceSOAP11port_http" binding="axis2:TestServiceSOAP11Binding">
<soap:address location="http://200.55.55.65:8080/LagoWebServices/services/TestService"/>
</wsdl:port>

<wsdl:port name="TestServiceSOAP12port_http" binding="axis2:TestServiceSOAP12Binding">
<soap12:address location="http://200.55.55.65:8080/LagoWebServices/services/TestService"/>
</wsdl:port>

<wsdl:port name="TestServiceHttpport1" binding="axis2:TestServiceHttpBinding">
<http:address location="http://200.55.55.65:8080/LagoWebServices/rest/TestService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>



Steps to reproduce:
1.Generate a web service
2.Try to send this object (should contains an array of items and some int value)
 
 Actual Results:
The int value is setted.
The array of items is null
 
 
 Expected Results:
 The int value is setted.
The array of items is NOT NULL
 
 Workaround (if any):
If i create an objects ONLY with array of items (without int value) - works.

P.S.
i've check what receive this method (from the BaseTestService.as)

processResult(result:Object,wrappedData:Object):void

as result - the xml string with all datas (as expected).

but the line of code
var soapResult:SOAPResult = decoder.decodeResponse(result.message.body);
as result has EMPTY array, so the decoder has simple skip the part of information. I have no source code of
soapDecoder so i can't say why :)

with other clients (not Flex) everything works. The Soap decoders doesn't skip the part of info.

 
 
 
Language Found: English
Bugbase Id: none
Triaged: No
Regression: No
QA Owner: Bill Sahlas
Resolved by: Svetlin Kalaydjiev
Fixed Version: SDK Gumbo Iteration 6 - Next Build
Confirmed Version: SDK Gumbo Iteration 6 - 4.0.0.2052
Participants: Carl J. Mosca, Catalin Anastasoaie, Deepa Subramaniam, Peter Farland, Steven Erat, Svetlin Kalaydjiev and Yevgen


 All   Comments      Sort Order:
Yevgen - [01/22/08 08:07 AM ]
I've created an example (webservices and flex_test_app)

Flex test application (with source code) - http://87.234.253.27:8080/Bug_11255
WebService for this application - http://87.234.253.27:8080/Axis2/services/Bug_11255_Service

all these endpoints works only from Monday to Friday (6.00 - 22-00: GMT+01:00 Time)

thank you for support

Yevgen - [01/22/08 09:36 AM ]
sorry :)
WebService for this application - http://87.234.253.27:8080/Axis2/services/Bug_11255_Service?wsdl

Catalin Anastasoaie - [03/03/08 06:04 AM ]
Assigning this to Cristi Ivascu for further investigation.

Temporary workaround:

In the TestObjs class change the definition of the items variable from Array to Object.

    Working version:

    public class TestObjs
    {
        /**
         * Constructor, initializes the type class
         */
public function TestObjs() {}
                
                   public var aa:Number;
                   [ArrayElementType("TestObj")]
                   public var items:Object;
            }
       }

Svetlin Kalaydjiev - [03/04/08 06:12 PM ]
I think I know what causes this. It's a bug in the SDK code, which I've fixed locally and would like to include in 3.0.1

Cristian, it turns out this is exactly the same problem that we discussed last week. The property (items) is declared as an array, while the items QName is registered to decode as a TestObj instance. Because of the bug in XMLDecoder.getExistingValue() the items property was not recognized as being iterable, so each individual TestObj was forced unsuccessfully to be the value of items instead of an element in the items array.

Svetlin Kalaydjiev - [03/05/08 07:43 AM ]
I moved this from FB to SDK.

Sending to internal review. It's a simple fix we should absolutely include in 3.0.1

Carl J. Mosca - [03/31/08 01:20 PM ]
I have posted a bug for what I believe is the same problem. Is this fix included in any of the nightly or other builds? I would like to test it.

Svetlin Kalaydjiev - [06/19/08 11:13 AM ]
Fixed in 3.0.x revision 2147

Needs to be merged to trunk and retested.

Carl J. Mosca - [06/20/08 10:21 AM ]
I downloaded 3.0.2.2155 and tried it but saw no difference. If I read the comments correctly, the fix was merged into this version.

Deepa Subramaniam - [06/20/08 06:13 PM ]
Hi Carl - You won't see this fix till it gets merged into our trunk which will happen soon. Keep an eye out, I'll try to post the build # that contains this fix.

Peter Farland - [07/29/08 12:31 PM ]
I believe this fix made it into trunk in revision 2185.

Steven Erat - [08/07/08 02:33 PM ]
verified. closing.