Rechercher : dans
Par :

[Web Services]passer une classe en paramètre

Dernière réponse le 10 avr 2009 à 01:22:23 apple31, le 16 jun 2006 à 15:40:59 
 Signaler ce message aux modérateurs

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://ws.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

Meilleures réponses pour « [Web Services]passer une classe en paramètre » dans :
[Programmation] Conventions de passage de paramètres sous x86 VoirLes conventions de passage de paramètres sous x86 Introduction Cdecl Stdcall Fastcall Register Pascal Sources de ce document et liens Lorsqu'un programme est compilé pour une architecture x86, le passage de paramètres pour...
Langage C++ - Les pointeurs VoirComme en langage C, le langage C++ permet d'utiliser des pointeurs pour manipuler des données, mais il introduit aussi le concept de référence, très pratique pour permettre la modification d'une donnée passée en paramètre d'une fonction. Définition...
Web Services VoirAvec l'interconnexion des ordinateurs en réseau et en particulier à travers internet, il devient possible de faire fonctionner des applications sur des machines distantes. L'intérêt d'une application fonctionnant à distance peut à première vue...

1

Sylvain, le 27 aoû 2007 à 09:01:38

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

Répondre à Sylvain

2

 theCompiler, le 10 avr 2009 à 01:22:23

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

Répondre à theCompiler
Collection CommentÇaMarche.net