Axis2 1.4.1 paramètre optionnel sur un type primitif
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
Code:
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> |
le problème c'est que dans la partie client la classe xxxxResponse contient des getters getPrixHT() et getPrixTTC() retournant un type primitif float.
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 :
Code:
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;
} |
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 ?
Merci