IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

Utiliser un type de donnée personnalisé


Sujet :

Services Web Java

  1. #1
    Invité
    Invité(e)
    Par défaut Utiliser un type de donnée personnalisé
    Bonjour,

    En suivant ce tutoriel je suis parevenu à consomer un WebService php5 avec Java ( non me )

    Maintenant je voudrais passer autre chose qu'une chaine de caractères ou un simple type.
    Je me suis crée un type personnalisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsd:complexType name="Repport">
    	<xsd:all>
    <xsd:element name="description" type="xsd:string"/>
    <xsd:element name="summary" type="xsd:string"/>
    <xsd:element name="author" type="xsd:string"/>
    <xsd:element name="creation" type="xsd:timeinstant"/>
    </xsd:all>
    </xsd:complexType>
    Mais je ne trouve pas comment l'utiliser..
    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ...
        public class Repport implements Serializable {        
            public String description, summary, author;
            public long time;
        }
    ...
    Repport repport = new Repport();
            repport.description = "description";
            repport.summary = "summary";
            repport.author = "author";
            repport.time = 00;
     
            objet.addProperty("repport",repport); // objet est uen instance de SoapObject
    Mais je suis confronté à ce message :
    Exception in thread "main" java.lang.RuntimeException: Cannot serialize: test.webs$Repport@fa3ac1
    at org.ksoap2.serialization.SoapSerializationEnvelope.writeProperty(Unknown Source)
    at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(Unknown Source)
    at org.ksoap2.serialization.SoapSerializationEnvelope.writeBody(Unknown Source)
    at org.ksoap2.SoapEnvelope.write(Unknown Source)
    at org.ksoap2.transport.Transport.createRequestData(Unknown Source)
    at org.ksoap2.transport.HttpTransportSE.call(Unknown Source)
    at test.webs.execute(webs.java:67)
    at test.webs.main(webs.java:85)
    Pouvez-vous m'aider ou me renseigner d'autres tutoriaux ?

    Merci

    ps: j'ai implementé Serializable dans Repport à cause de la pemière ligne de l'execption. Mais évidemment ça ne résoud rien.

  2. #2
    Invité
    Invité(e)
    Par défaut
    heuu j'ai utlisé une instance de SoapObject au lieu d'utiliser un Objet rapport et ça semble fonctionner MAIS je ne sais pas vraiment pourquoi et j'ai l'impression de m'égarer fortement..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SoapObject rapport = new SoapObject(service,method);
     
            rapport.addProperty("description","Description..");
            rapport.addProperty("summary","Sumarray..");
            rapport.addProperty("author","Author..");
            rapport.addProperty("creation",000);
     
            objet.addProperty("repport",rapport);
    Quelqu'un à t'il queqlues infos ou conseils ?

    Mon but (actuel) et de consommer (au mieux) avec Java un WebService Php5 utilisant des types complexes..

  3. #3
    Invité de passage
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1
    Par défaut Utiliser l'objet SoapObject
    L'API ksoap2 prend en compte la sérialization des types complexes grâce à la classe SoapObject http://ksoap2.sourceforge.net/doc/ap...oapObject.html .

    voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SoapObject person0 = new SoapObject("urn:string","Person"); 
    // les paramètres ne servent pas à grand chose car ici on ne 
    //fera aucun appel de service sur person.
    person0.addProperty("firstname","johann");
    person0.addProperty("age","24");
    person0.addProperty("gender","male");
    connexionServeur = new HttpTransport( urlService );
    connexionServeur.debug = true;
    objetSOAPHello = new SoapObject(nomService, methodeChoisie );
    objetSOAPHello .addProperty("Person",person0);
    ...
    le type complexe etant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <person>
      <name/>
      <age/>
      <gender/>
    </person>

Discussions similaires

  1. Utilisation du type de données Timestamp
    Par Jinkas dans le forum SQL
    Réponses: 5
    Dernier message: 25/03/2013, 11h07
  2. Utilisation des types de données bit dans SQL Server
    Par yanal dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/05/2008, 14h19
  3. [VBA-E]type de donnée range en vba utilisée dans une feuille
    Par Yoyo51 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/03/2006, 10h26
  4. Réponses: 1
    Dernier message: 18/10/2005, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo