Xml-bean généré avec type primitif au lieu de l'objet
Résolu
mehdikwa
Messages postés
9
Statut
Membre
-
mehdikwa -
mehdikwa -
Bonjour,
On a une définition de schéma avec l'élément ci-dessous :
Quand on compile cet élément a un xml-bean on obtient l'objet
On a besoin de passer le xsi:nil-value pour obtenir
Dans les spécification wsdl2java bindings si l'attribut nillable est ajoutée ca devrait donner le wrapper du type d'objet, dans ce cas java.lang.Long et non pas le type primitif long
On utilise axis 1.4, Ant 1.6.5, JDK 1.5
On a une définition de schéma avec l'élément ci-dessous :
<xsd:element name="customerId" nillable="true" type="xsd:long" />
Quand on compile cet élément a un xml-bean on obtient l'objet
au lieu de
Long customerId
java.lang.Long customerId
On a besoin de passer le xsi:nil-value pour obtenir
java.lang.Long customerId
Dans les spécification wsdl2java bindings si l'attribut nillable est ajoutée ca devrait donner le wrapper du type d'objet, dans ce cas java.lang.Long et non pas le type primitif long
On utilise axis 1.4, Ant 1.6.5, JDK 1.5
A voir également:
- Xml-bean généré avec type primitif au lieu de l'objet
- Xml download - Télécharger - Édition & Programmation
- Trouver un lieu avec coordonnées gps - Guide
- Voir un lieu en direct par satellite - Guide
- Office xml handler - Télécharger - Traitement de texte
- Clear type - Guide
4 réponses
Bonsoir,
java.lang.Long et long c'est pareil, Java fait implicitement la conversion de l'un à l'autre. La seule différence c'est que java.lang.Long peux prendre la valeur null, alors que long non. Donc si tu n'as pas xsi:nil-value il optimise en prenant un long (qui coûte moins cher en mémoire) plutôt qu'un Long qui n'a lieu d'être que si null est autorisé.
Autoboxing and Unboxing
La confiance n'exclut pas le contrôle
java.lang.Long et long c'est pareil, Java fait implicitement la conversion de l'un à l'autre. La seule différence c'est que java.lang.Long peux prendre la valeur null, alors que long non. Donc si tu n'as pas xsi:nil-value il optimise en prenant un long (qui coûte moins cher en mémoire) plutôt qu'un Long qui n'a lieu d'être que si null est autorisé.
Autoboxing and Unboxing
La confiance n'exclut pas le contrôle
Bonjour KX,
Merci pour ton retour. En effet j'ai besoin d'obtenir le wrapper de l'objet java.lang.Long et non le primitif. En rajoutant l'élément xsi:nil à mon wsdl comme suit:
j'obtien l'erreur suivante
Merci pour ton retour. En effet j'ai besoin d'obtenir le wrapper de l'objet java.lang.Long et non le primitif. En rajoutant l'élément xsi:nil à mon wsdl comme suit:
<xsd:element name="customerId" type="xsd:long" xsi:nil="true" nillable="true" />
j'obtien l'erreur suivante
Line=358: The prefix "xsi" for attribute "xsi:nil" associated with an element type "xsd:element" is not bound.
En effet j'avais oublié la déclaration xsi. Cependant même en ajoutant l'élément comme suit, j'obtiens toujours le type primitif au lieu de l'objet
Version Axis 1.4.
J'ai trouvé dans un forum que c'est un problème d'axis et qu'il fallait rajouter des lignes de code sur les sources axis et recompiler. J'ai tenté de refaire la recompil du code d'axis mais j'ai beaucoup d'erreurs sur des dépendances.
<xsd:element name="customerId" type="xsd:long" xsi:nil="true" />
Version Axis 1.4.
J'ai trouvé dans un forum que c'est un problème d'axis et qu'il fallait rajouter des lignes de code sur les sources axis et recompiler. J'ai tenté de refaire la recompil du code d'axis mais j'ai beaucoup d'erreurs sur des dépendances.