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.
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 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(); } }
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
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>
Merci.
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)
Partager