Bonjour,

J'ai un webservice qui doit me retourner un tableau d'objets bien formés (POJOs) mais lorsque je l'appelle en SOAP, j'ai une exception côté client :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement col
Mon objet est le suivant (je vous fais grâce des getters/setters) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
public class Gadget implements Serializable {
	static final long serialVersionUID = -2455121595840754378L;
	private int id;
	private int idg;
	private int ido;
	private String title;
	private int col;
	private int row;
	private int idu;
 
	public Gadget()
	{
	}
...
Bien sûr, côté WSDL (généré à partir des classes Java avec Java2WSDL fourni par Axis2), j'ai mon objet qui est mappé comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://models.services/xsd">
    <xs:complexType name="Gadget">
        <xs:sequence>
            <xs:element minOccurs="0" name="col" type="xs:int"/>
            <xs:element minOccurs="0" name="id" type="xs:int"/>
            <xs:element minOccurs="0" name="idg" type="xs:int"/>
            <xs:element minOccurs="0" name="ido" type="xs:int"/>
            <xs:element minOccurs="0" name="idu" type="xs:int"/>
            <xs:element minOccurs="0" name="row" type="xs:int"/>
            <xs:element minOccurs="0" name="title" nillable="true" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
...
Et j'utilise le code suivant pour appeler mon webservice côté client :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
			ServicesStub stub = new ServicesStub(null, url);
			GetGadgetsByUser req1 = new GetGadgetsByUser();
			req1.setId(user);
			GetGadgetsByUserResponse res1 = stub.getGadgetsByUser(req1);
 
			Gadget[] gadgets = res1.get_return();
Quelqu'un aurait une idée de comment résoudre ce problème ? Merci d'avance.

Marc