Bonjour, j'ai généré un web service client (config:tomcat, Axis, plugin wtp d'éclipse). j'obtiens des classes de type WebValue, WebTreatment etc... qui correspondent au type complexe, les fichiers locator, binding sont aussi généré. Quand j'essaie d'envoyer une WebValue au webService j'obtiens une erreur de type BeanDeserializer, a quoi est due cette erreur?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
 faultSubcode: 
 faultString: org.apache.axis.encoding.ser.BeanDeserializer
 faultActor: 
 faultNode: 
 faultDetail: 
	{http://xml.apache.org/axis/}stackTrace:org.apache.axis.encoding.ser.BeanDeserializer
Voici la méthode dans la classe BindingStub pour envoyer le type complexe
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 boolean setValue(java.lang.String sessionContextId, java.lang.String treatmentId, java.lang.String fieldId, com.axemble.vdp.web.classes.WebValue[] webvalues) throws java.rmi.RemoteException {
        if (super.cachedEndpoint == null) {
            throw new org.apache.axis.NoEndPointException();
        }
        org.apache.axis.client.Call _call = createCall();
        _call.setOperation(_operations[2]);
        _call.setUseSOAPAction(true);
        _call.setSOAPActionURI("");
        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
        _call.setOperationName(new javax.xml.namespace.QName("VDPWebServices", "setValue"));
 
        setRequestHeaders(_call);
        setAttachments(_call);
 try {
             /**erreur ici!! les parametres sont de types String excepté webvalues qui est un tableau de WebValue*/
	 java.lang.Object _resp = _call.invoke(new java.lang.Object[] {sessionContextId,treatmentId,fieldId,webvalues});
             /**fin de l'erreur*/
 
        if (_resp instanceof java.rmi.RemoteException) {
            throw (java.rmi.RemoteException)_resp;
        }
        else {
            extractAttachments(_call);
            try {
                return ((java.lang.Boolean) _resp).booleanValue();
            } catch (java.lang.Exception _exception) {
                return ((java.lang.Boolean) org.apache.axis.utils.JavaUtils.convert(_resp, boolean.class)).booleanValue();
            }
        }
  } catch (org.apache.axis.AxisFault axisFaultException) {
  throw axisFaultException;
}
    }
Dans mon code Java, l'appel ce fait par:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
public boolean initField(WebField webfield,WebValue[] webvalues) throws RemoteException{
/**erreur ici les parametres sont bons*/
		getDynamicExplorer().setValue(getContextId(),getWebTreatment().getId(),webfield.getId(),webvalues);
		return true;
	}