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

Android Discussion :

Android et WebService


Sujet :

Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Android et WebService
    Bonjour,

    Voila mon problème et que je dois appeler un webservice a partir d'un client android et je galère un peu

    Voila ma méthode d'appel, mon WSDL est le resultat du logcat d'apres ce que j'ai compris, il faut que je sérialise mon Objet (la classe personne). Je sais pas si c'est exactement ca j'ai aussi des doutes sur mes liens.

    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
    35
     
    public class Appelws {
     
    	private static final String NAMESPACE = "http://www.springbyexample.org/person/schema/beans";
    	  private static final String URL = "http://192.168.1.5:8080/returnId/person.wsdl";
    	  private static final String SOAP_ACTION = "PersonService";
    	  private static final String METHOD_NAME = "get-persons";
     
    	  public String returnid(String a) throws IOException {
    	    person p=new person();
    	    p.setId(44);
    	    p.setNom("mg");
    	    p.setPrenom("nené");
    	      // initialiser la requette SOAP
    	    	SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    	      request.addProperty("get-persons", p);
     
    	      //declare la version de SOAP
    	      SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    	      envelope.setOutputSoapObject(request);
    	      // appel internet 
    	      AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);
    	      try {
    			androidHttpTransport.call(SOAP_ACTION, envelope);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (XmlPullParserException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	      SoapObject objetSOAP = (SoapObject)envelope.getResponse();
    	      return objetSOAP.getProperty(0).toString();		
    	  }
    		  }
    WSDL
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
    - <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:sch="http://www.springbyexample.org/person/schema/beans" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.springbyexample.org/person/schema/beans" targetNamespace="http://www.springbyexample.org/person/schema/beans">
    - <wsdl:types>
    - <xsd:schema xmlns="http://www.springbyexample.org/person/schema/beans" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.springbyexample.org/person/schema/beans">
    - <xsd:element name="get-persons-request">
    - <xsd:complexType>
    - <xsd:sequence>
      <xsd:element name="person" type="person" /> 
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
    - <xsd:element name="person-response">
    - <xsd:complexType>
    - <xsd:sequence>
      <xsd:element name="id" type="xsd:int" /> 
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
    - <xsd:complexType name="person">
    - <xsd:sequence>
      <xsd:element name="id" type="xsd:int" /> 
      <xsd:element name="first-name" type="xsd:string" /> 
      <xsd:element name="last-name" type="xsd:string" /> 
      </xsd:sequence>
      </xsd:complexType>
      </xsd:schema>
      </wsdl:types>
    - <wsdl:message name="get-persons-request">
      <wsdl:part element="tns:get-persons-request" name="get-persons-request" /> 
      </wsdl:message>
    - <wsdl:message name="person-response">
      <wsdl:part element="tns:person-response" name="person-response" /> 
      </wsdl:message>
    - <wsdl:portType name="Person">
    - <wsdl:operation name="get-persons">
      <wsdl:input message="tns:get-persons-request" name="get-persons-request" /> 
      </wsdl:operation>
    - <wsdl:operation name="person">
      <wsdl:output message="tns:person-response" name="person-response" /> 
      </wsdl:operation>
      </wsdl:portType>
    - <wsdl:binding name="PersonSoap11" type="tns:Person">
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> 
    - <wsdl:operation name="get-persons">
      <soap:operation soapAction="" /> 
    - <wsdl:input name="get-persons-request">
      <soap:body use="literal" /> 
      </wsdl:input>
      </wsdl:operation>
    - <wsdl:operation name="person">
      <soap:operation soapAction="" /> 
    - <wsdl:output name="person-response">
      <soap:body use="literal" /> 
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>
    - <wsdl:service name="PersonService">
    - <wsdl:port binding="tns:PersonSoap11" name="PersonSoap11">
      <soap:address location="/returnId/person" /> 
      </wsdl:port>
      </wsdl:service>
      </wsdl:definitions>
    Logcat:
    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
     
    03-11 16:37:35.511: E/AndroidRuntime(280): java.lang.RuntimeException: Cannot serialize: com.cli.person@44ef2a88
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:629)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at org.ksoap2.serialization.SoapSerializationEnvelope.writeProperty(SoapSerializationEnvelope.java:613)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:582)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:566)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:623)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at org.ksoap2.serialization.SoapSerializationEnvelope.writeBody(SoapSerializationEnvelope.java:547)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at org.ksoap2.SoapEnvelope.write(SoapEnvelope.java:192)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at org.ksoap2.transport.Transport.createRequestData(Transport.java:74)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:58)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at com.cli.Appelws.returnid(Appelws.java:36)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at com.cli.ClientIdActivity$1.onClick(ClientIdActivity.java:33)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at android.view.View.performClick(View.java:2408)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at android.view.View$PerformClick.run(View.java:8816)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at android.os.Handler.handleCallback(Handler.java:587)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at android.os.Handler.dispatchMessage(Handler.java:92)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at android.os.Looper.loop(Looper.java:123)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at android.app.ActivityThread.main(ActivityThread.java:4627)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at java.lang.reflect.Method.invokeNative(Native Method)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at java.lang.reflect.Method.invoke(Method.java:521)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at dalvik.system.NativeStart.main(Native Method)
    Merci.

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Tu as un problème lorsque tu serialize ton Objet Person

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    java.lang.RuntimeException: Cannot serialize: com.cli.person@44ef2a88
    03-11 16:37:35.511: E/AndroidRuntime(280): 	at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:629)
    En à croire l'erreur cela proviendrait d'un Write, il faudrait que tu regardes comme tu le reconstruis.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    ok je vais voire merci

Discussions similaires

  1. Android et Webservices
    Par skyweb dans le forum Windev Mobile
    Réponses: 7
    Dernier message: 24/10/2012, 19h38
  2. Android avec WebService
    Par mrtoto dans le forum Android
    Réponses: 1
    Dernier message: 04/08/2012, 12h32
  3. interopérabilité wp7, iphone, android le webservices ?
    Par slacky dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 27/02/2012, 10h42
  4. Communication Android et WebService
    Par vicky777plus dans le forum Android
    Réponses: 1
    Dernier message: 01/06/2011, 08h56

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