Bonjour,
j'utilise Axis2 1.4.1 (je n'ai pas le choix car on est en Java 1.4 et c'est la seule version qui a été qualifié dans l'entreprise).
J'ai un WSDL avec une réponse qui contient des éléments facultatifs
le problème c'est que dans la partie client la classe xxxxResponse contient des getters getPrixHT() et getPrixTTC() retournant un type primitif float.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <xsd:element name="xxxxResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="errorCode" type="xsd:string" maxOccurs="1" minOccurs="1"/> <xsd:element name="prixHT" type="xsd:float" maxOccurs="1" minOccurs="0"/> <xsd:element name="prixTTC" type="xsd:float" maxOccurs="1" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element>
Donc, impossible d'avoir null. Même en ajoutant nillable="true" ça ne change rien.
La question est comment savoir si le prixHT et prixTTC on été retourné au non dans la réponse ?
Dans le code généré par Axis2 j'ai :
Est-ce que si prixHT et prixTTC ne sont pas retourné dans la réponse il faut tester dans la partie client avec java.lang.Float.isNaN ?
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
16
17
18
19
20 /** * Auto generated setter method * @param param PrixHT */ public void setPrixHT(float param){ // setting primitive attribute tracker to true if (java.lang.Float.isNaN(param)) { localPrixHTTracker = false; } else { localPrixHTTracker = true; } this.localPrixHT=param; }
Merci
Partager