
| Key: |
AXIS-1673
|
| Type: |
Bug
|
| Status: |
Resolved
|
| Resolution: |
Fixed
|
| Priority: |
Blocker
|
| Assignee: |
Unassigned
|
| Reporter: |
Julien Wajsberg
|
| Votes: |
1
|
| Watchers: |
5
|
|
If you were logged in you would be able to see more operations.
|
|
|
|
File Attachments:
|
|
|
Environment:
|
Server : Windows 2000
Client : Windows Xp
JVM : Sun 1.4.2
Server : Windows 2000
Client : Windows Xp
JVM : Sun 1.4.2
|
|
| Resolution Date: |
28/Apr/05 07:20 AM
|
|
There's a strange bug in axis 1.2RC2, dealing with array of beans.
The signature of the called method is :
public ArrayBean echoArrayBean(ArrayBean param);
ArrayBean is defined like this :
public class ArrayBean implements Serializable {
private String stringData;
private SimpleBean[] simpleBeanArrayData;
... accessors ...
}
And SimpleBean :
public class SimpleBean implements Serializable {
private String stringData;
private int intData;
... accessors ...
}
The corresponding part of the WSDL generated by Axis follows (in different namespaces, but we don't care here) :
<element name="echoArrayBean">
<complexType>
<sequence>
<element name="in0" type="tns1:ArrayBean"/>
</sequence>
</complexType>
</element>
<complexType name="ArrayOf_tns1_SimpleBean">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item" type="tns1:SimpleBean"/>
</sequence>
</complexType>
<complexType name="SimpleBean">
<sequence>
<element name="intData" type="xsd:int"/>
<element name="stringData" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="ArrayBean">
<sequence>
<element name="simpleBeanArrayData" nillable="true" type="impl:ArrayOf_tns1_SimpleBean"/>
<element name="stringData" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
What's important here is that "item" is correctly specified as an element of Array_Of_tns1_SimpleBean.
When I try to invoke this operation with a Weblogic client, I get the following exception :
java.rmi.RemoteException: SOAP Fault:javax.xml.rpc.soap.SOAPFaultException: org.xml.sax.SAXException: Invalid element in test.bean.SimpleBean - item
The corresponding part in the soap message is :
<n1:echoArrayBean><n1:in0><n2:simpleBeanArrayData xsi:type="n1:ArrayOf_tns1_SimpleBean">
<n1:item xsi:type="n2:SimpleBean"><n2:intData>-123456</n2:intData><n2:stringData>ces données sontcomplexes [à@}]</n2:stringData></n1:item>
<n1:item xsi:type="n2:SimpleBean"><n2:intData>-123456</n2:intData><n2:stringData>ces données sontcomplexes [à@}]</n2:stringData></n1:item>
</n2:simpleBeanArrayData><n3:stringData>data</n3:stringData></n1:in0></n1:echoArrayBean>
This message seems to be correct, according to the WSDL. Yet, Axis doesn't like it :/
Note : we just tried with an Axis client: same soap message, same behaviour.
--
Julien Wajsberg
|
|
Description
|
There's a strange bug in axis 1.2RC2, dealing with array of beans.
The signature of the called method is :
public ArrayBean echoArrayBean(ArrayBean param);
ArrayBean is defined like this :
public class ArrayBean implements Serializable {
private String stringData;
private SimpleBean[] simpleBeanArrayData;
... accessors ...
}
And SimpleBean :
public class SimpleBean implements Serializable {
private String stringData;
private int intData;
... accessors ...
}
The corresponding part of the WSDL generated by Axis follows (in different namespaces, but we don't care here) :
<element name="echoArrayBean">
<complexType>
<sequence>
<element name="in0" type="tns1:ArrayBean"/>
</sequence>
</complexType>
</element>
<complexType name="ArrayOf_tns1_SimpleBean">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item" type="tns1:SimpleBean"/>
</sequence>
</complexType>
<complexType name="SimpleBean">
<sequence>
<element name="intData" type="xsd:int"/>
<element name="stringData" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
<complexType name="ArrayBean">
<sequence>
<element name="simpleBeanArrayData" nillable="true" type="impl:ArrayOf_tns1_SimpleBean"/>
<element name="stringData" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
What's important here is that "item" is correctly specified as an element of Array_Of_tns1_SimpleBean.
When I try to invoke this operation with a Weblogic client, I get the following exception :
java.rmi.RemoteException: SOAP Fault:javax.xml.rpc.soap.SOAPFaultException: org.xml.sax.SAXException: Invalid element in test.bean.SimpleBean - item
The corresponding part in the soap message is :
<n1:echoArrayBean><n1:in0><n2:simpleBeanArrayData xsi:type="n1:ArrayOf_tns1_SimpleBean">
<n1:item xsi:type="n2:SimpleBean"><n2:intData>-123456</n2:intData><n2:stringData>ces données sontcomplexes [à@}]</n2:stringData></n1:item>
<n1:item xsi:type="n2:SimpleBean"><n2:intData>-123456</n2:intData><n2:stringData>ces données sontcomplexes [à@}]</n2:stringData></n1:item>
</n2:simpleBeanArrayData><n3:stringData>data</n3:stringData></n1:in0></n1:echoArrayBean>
This message seems to be correct, according to the WSDL. Yet, Axis doesn't like it :/
Note : we just tried with an Axis client: same soap message, same behaviour.
--
Julien Wajsberg
|
Show » |
made changes - 10/Dec/04 09:01 AM
made changes - 18/Mar/05 06:17 AM
|
Priority
|
Critical
[ 2
]
|
Blocker
[ 1
]
|
made changes - 28/Apr/05 07:20 AM
|
Status
|
Open
[ 1
]
|
Resolved
[ 5
]
|
|
Resolution
|
|
Fixed
[ 1
]
|
|