[Web Services]passer une classe en paramètre

apple31 Messages postés 25 Statut Membre -  
 theCompiler -
Bonjour,

J'utilise Axis pour faire des services Web.

Je souhaite dans mon service que la méthode qui sera appelée possède en paramètre une classe : par exemple :

public class Calculator {

    // methode permettant de faire l'addition de 2 entiers

    public int add(Nombres n) {

        return n.a + n.b;
    }
}



le problème c'est que quand dans le client j'essai d'apppeller la méthode, j'ai une erreur

           // adresse de destination du message SOAP
            String endpoint = "http://localhost:8080/axis/services/calculator";

            // création du service
            Service service = new Service();
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(new java.net.URL(endpoint));

            // invocation de la méthode
            Integer res = (Integer) call.invoke("add", new Object[] { new Nombres(1, 2) });

            // affichage du résultat
            System.out.println("resultat = " + res);


voici l'erreur :
java.io.IOException: No serializer found for class fr.cls.ws.test.service.Nombres in registry org.apache.axis.encoding.TypeMappingDelegate@737371

j'ai vu sur le net cet article :

http://axis.apache.org/axis/java/user-guide.html#WhatAxisCanNotSendViaSOAP

d'après ce que j'ai compris on peut âs faire appel à des classes qu'on a créé nous même, ils parlent de java bean mais je ne comprend pas trop comment ils font .

quelqu'un a déjà essayé de passer une classe ou une "enum" en paramètre d'un service ?

Merci par avance

Apple
A voir également:

1 réponse

Sylvain
 
Bonjour,

essaye de rajouter implements Serializable à ta classe Nombre.
car ta classe doit etre serialisée pour etre envoyée à ton serveur.

Bon courage

Sylvain
0
theCompiler
 
salut

j'ai un problème pareil
j'ai ajouter implements Serialisable
mais les attributs de la classe qui sont de type tableaux ne sont pas transmissible du client vers le serveur.
avez vous une solution?

Merci d'avance
0