You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Subba Ayyagari (JIRA)" <ax...@ws.apache.org> on 2006/03/21 19:22:03 UTC

[jira] Updated: (AXIS-2444) XML Deserialzation problem with Union of SimpleTypes

     [ http://issues.apache.org/jira/browse/AXIS-2444?page=all ]

Subba Ayyagari updated AXIS-2444:
---------------------------------

    Attachment: EMCAxisBug.zip

> XML Deserialzation problem with Union of SimpleTypes
> ----------------------------------------------------
>
>          Key: AXIS-2444
>          URL: http://issues.apache.org/jira/browse/AXIS-2444
>      Project: Apache Axis
>         Type: Bug
>   Components: Serialization/Deserialization
>     Versions: 1.2.1
>  Environment: Windows XP, Sun JDK 1.4.2_06
>     Reporter: Subba Ayyagari
>  Attachments: EMCAxisBug.zip
>
> I've a WebService whose WSDL is View.wsdl. The result returned adheres to the View.xsd (which is flattened into the View.wsdl for ease of use). The WebService returns "FlexElementResult__Type" which is defined as given below. On the client side, I use Axis 1.2.1 (I tried 1.2 as well as 1.1) with proxies generated using WSDL2Java tool. 
> <xs:complexType name="FlexElementResult__Type">
>   <xs:sequence>
>     <xs:element name="Value" type="Value_Type" nillable="true"/>
>   </xs:sequence>
>   <xs:attribute name="Name" type="xs:string" use="required"/>
> </xs:complexType>
> <xs:simpleType name="Value_Type">
>   <xs:union memberTypes="xs:boolean xs:date xs:string xs:decimal xs:gYearMonth xs:int xs:integer xs:long xs:float LoanType__Type"/>
> </xs:simpleType>
> The WebService returns the following payload. I've a small PHP file setup on my hosting site that returns this following response for testing purposes at http://72.3.135.4/EMCAxisBug.php 
> <fnf:ViewReadResponse xmlns:fnf="http://example.test.com/services/View/1.01">
>   <Element Name="BorrowerName" xmlns:fnf1="http://example.test.com/services">
>     <Value xsi:type="xs:string">TEST,NAME</Value>
>   </Element>
>   <Element Name="OriginalMortgageAmount" xmlns:fnf1="http://example.test.com/services">
>     <Value xsi:type="xs:decimal">99888.00</Value>
>   </Element>
>   <Element Name="LoanType" xmlns:fnf1="http://example.test.com/services">
>     <Value xsi:type="fnf:LoanType__Type">ConventionalWithoutPMI</Value>
>   </Element>
> </fnf:ViewReadResponse>
> This XML reponse is valid per schema View.xsd.
> But, when I use my test case with the generated axis client proxy, I get the following exception:
> - Could not convert java.lang.String to bean field 'value', type com.test.example.services.View._1_01.Value_Type
> - Exception:
> java.lang.IllegalArgumentException: argument type mismatch
> 	at org.apache.axis.encoding.ser.BeanPropertyTarget.set(BeanPropertyTarget.java:157)
> 	at org.apache.axis.encoding.DeserializerImpl.valueComplete(DeserializerImpl.java:249)
> 	at org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl.java:509)
> 	at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
> 	at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:171)
> 	at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
> 	at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
> 	at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
> 	at org.apache.axis.client.Call.invoke(Call.java:2448)
> 	at org.apache.axis.client.Call.invoke(Call.java:2347)
> 	at org.apache.axis.client.Call.invoke(Call.java:1804)
> 	at com.test.example.services.View._1_01.ViewSOAPHttpsBindingStub.viewRead(ViewSOAPHttpsBindingStub.java:178)
> 	at com.test.TestMain.main(TestMain.java:17)
> I don't see anything wrong with the response XML. I've a build.xml attached that generate the proxy classes and runs my test against my hosted hard-coded webservice php file. I also attached a hard-coded JSP webserivce simulator EMCAxisBug.jsp for your local testing.
> I went through the mailing archives and googled for this, but nothing really solved this problem and it looks to me like a bug in the deseriazation and handling of union types.
> I am attaching the eclipse project am using along with all the sample response, wsdl, xsd etc etc.
> Please let me know if you need anything else.
> Thanks

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