Bonjour.
Il me semble que la gestion des tableaux d'objets soit assez compliquée ...
Prenons le cas de la méthode
Le fichier wsdl généré contient bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public String exportationToWS(ExportationHeader header, ExportationRow[] export ){ ... }
Cependant, l'utilisation via wsdl2java (génération depuis Eclipse) me donne l'erreur suivante sur l'appel à client.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <xs:element name="exportationToWS"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" name="header" nillable="true" type="ax225:ExportationHeader"/> <xs:element maxOccurs="unbounded" minOccurs="0" name="export" nillable="true" type="ax225:ExportationRow"/> </xs:sequence> </xs:complexType> </xs:element>
De plus, la création à la main fait que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Exception in thread "main" java.lang.InstantiationError: org.apache.axis2.databinding.ADBDataSource at P$ExportationToWS.getOMElement(PStub.java:5403) at PStub.toEnvelope(PStub.java:6527) at PStub.exportationToWS(PStub.java:733)
Avec uploadFile.addChild(nameEleTab); ou uploadFile.addChild(nameEle); la tableau contient toujours un seul élement ExportationRow avec aucune valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 OMElement uploadFile = fac.createOMElement("exportationToWS", omNs); OMElement nameEleTab = fac.createOMElement("Array", omNs); nameEleTab.setLocalName("export"); nameEleTab.setText("export"); OMElement nameEle = fac.createOMElement("ExportationRow", omNs); OMElement badge = fac.createOMElement("badge", omNs); badge.setText("B"); nameEle.addChild(badge); nameEleTab.addChild(nameEle);
Sans ce addChild, le tableau est vide.
Alors que pour la structure ExportationHeader, cela fonctionne.
... je suis un peu perdu.
Merci.
Partager