Bonjour,
je travaille avec Axis 1.2.1 et le jdk 1.4.2.
Mon Web Service contient plusieurs paramètres qui correspondent tous à des types complexes.
Une des données de mes beans me posent des pbs quand je travaille avec l'encoding Document Wrapped/ Litteral (en RPC/Encoded pas de pb).
La donnée concernée est mtba9e.
Il semblerait que le numérique soit à l'origine de mes pbs.
Voici une partie du WSDL :
Le bean généré avec le ant axis-wsdl2java pour ce type complexe contient ma donnée avec un E majusucle :<complexType name="WsBgUneAssiette">
<sequence>
<element name="mtba9e" type="xsd:double"/>
<element name="crepec" nillable="true" type="xsd:string"/>
<element name="masres" type="xsd:double"/>
<element name="rsnapr" nillable="true" type="xsd:string"/>
<element name="cnaprs" nillable="true" type="xsd:string"/>
<element name="cfcasr" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
On peut voir que l'attribut généré contient une majuscule.
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34 public class WsBgUneAssiette implements java.io.Serializable { private double mtba9E; .... public WsBgUneAssiette( double mtba9E, ... /** * Gets the mtba9E value for this WsBgUneAssiette. * * @return mtba9E */ public double getMtba9E() { return mtba9E; } /** * Sets the mtba9E value for this WsBgUneAssiette. * * @param mtba9E */ public void setMtba9E(double mtba9E) { this.mtba9E = mtba9E; } .... static { typeDesc.setXmlType(new javax.xml.namespace.QName("http://ws.dico.metier.dsgd.cristal.cnaf", "WsBgUneAssiette")); org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc(); elemField.setFieldName("mtba9E"); elemField.setXmlName(new javax.xml.namespace.QName("http://ws.dico.metier.dsgd.cristal.cnaf", "mtba9e")); elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "double")); elemField.setNillable(false); typeDesc.addFieldDesc(elemField);
En mode RPC/ Encoded ca ne semble pas poser de pb. Il ne doit pas gérer de la même manière la déserialisation.
Par contre, en mode Document Wrapped, il ne semble pas pouvoir déserialiser cette donnée.
Voici le message d'erreur :
org.xml.sax.SAXException: Invalid element in cnaf.cristal.dsgd.metier.dico.ws.WsBgUneAssiette - mtba9e
at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:258)
Si je modifie la classe générée pour remettre tous les e majuscule en e minuscule mon code fonctionne.
Savez vous si c'est un pb connu ou une limitation chez Axis ?
Je vous remercie pour les réponses que vous pourrez m'apporter.
Cordialement,
Arnaud Coulon
Partager