Bonjour,
je rencontre un problème lors de l'utilisation d'un WebService.
Le WSDL :
Le code JAVA :
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99 <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns0="http://tools/Tools.wsdl/types/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tools/Tools.wsdl" name="tools" targetNamespace="http://tools/Tools.wsdl"> <types> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://tools/Tools.wsdl/types/" targetNamespace="http://tools/Tools.wsdl/types/" elementFormDefault="qualified"> <complexType name="getInstanceName"> <sequence/> </complexType> <complexType name="getInstanceNameResponse"> <sequence> <element name="result" type="string" nillable="true"/> </sequence> </complexType> <complexType name="getTablespaces"> <sequence/> </complexType> <complexType name="getTablespacesResponse"> <sequence> <element name="result" type="string" nillable="true" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> <element name="getInstanceNameElement" type="tns:getInstanceName"/> <element name="getInstanceNameResponseElement" type="tns:getInstanceNameResponse"/> <element name="getTablespacesElement" type="tns:getTablespaces"/> <element name="getTablespacesResponseElement" type="tns:getTablespacesResponse"/> </schema> </types> <message name="Tools_getInstanceName"> <part name="parameters" element="tns0:getInstanceNameElement"/> </message> <message name="Tools_getInstanceNameResponse"> <part name="parameters" element="tns0:getInstanceNameResponseElement"/> </message> <message name="Tools_getTablespaces"> <part name="parameters" element="tns0:getTablespacesElement"/> </message> <message name="Tools_getTablespacesResponse"> <part name="parameters" element="tns0:getTablespacesResponseElement"/> </message> <portType name="tools"> <operation name="getInstanceName"> <input message="tns:Tools_getInstanceName"/> <output message="tns:Tools_getInstanceNameResponse"/> </operation> <operation name="getTablespaces"> <input message="tns:Tools_getTablespaces"/> <output message="tns:Tools_getTablespacesResponse"/> </operation> </portType> <binding name="toolsSoapHttp" type="tns:tools"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getInstanceName"> <soap:operation soapAction="http://tools/Tools.wsdl/getInstanceName"/> <input> <soap:body use="literal" parts="parameters"/> </input> <output> <soap:body use="literal" parts="parameters"/> </output> </operation> <operation name="getTablespaces"> <soap:operation soapAction="http://tools/Tools.wsdl/getTablespaces"/> <input> <soap:body use="literal" parts="parameters"/> </input> <output> <soap:body use="literal" parts="parameters"/> </output> </operation> </binding> <binding name="toolsSoap12Http" type="tns:tools"> <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getInstanceName"> <soap12:operation soapAction="http://tools/Tools.wsdl/getInstanceName" soapActionRequired="false"/> <input> <soap12:body use="literal" parts="parameters"/> </input> <output> <soap12:body use="literal" parts="parameters"/> </output> </operation> <operation name="getTablespaces"> <soap12:operation soapAction="http://tools/Tools.wsdl/getTablespaces" soapActionRequired="false"/> <input> <soap12:body use="literal" parts="parameters"/> </input> <output> <soap12:body use="literal" parts="parameters"/> </output> </operation> </binding> <service name="tools"> <port name="toolsSoapHttpPort" binding="tns:toolsSoapHttp"> <soap:address location="http://mascart.apaveno.com:7799/TOOLS-tools-context-root/toolsSoapHttpPort"/> </port> <port name="toolsSoap12HttpPort" binding="tns:toolsSoap12Http"> <soap12:address location="http://mascart.apaveno.com:7799/TOOLS-tools-context-root/toolsSoap12HttpPort"/> </port> </service> </definitions>
J'obtiens l'erreur suivante:
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107 package hello.World; import hello.World.AppelService; import java.io.IOException; import org.ksoap2.SoapEnvelope; import org.ksoap2.SoapFault; import org.ksoap2.serialization.PropertyInfo; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapPrimitive; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransportSE; import org.xmlpull.v1.XmlPullParserException; import android.R.string; import android.os.Bundle; import android.util.Log; public class AppelTools { private static final String NAMESPACE = "http://tools/Tools.wsdl/"; private static final String URL = "http://mascart.apaveno.com:7799/TOOLS-tools-context-root/toolsSoap12HttpPort?WSDL"; private static final String SOAP_ACTION = "http://tools/Tools.wsdl/getInstanceName"; private static final String METHOD_NAME = "getInstanceName"; String wsGetInstanceName() { String retour = null; //Integer pId = 1; SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12); envelope.dotNet = false; //Préparation de la requête envelope.setOutputSoapObject (request); HttpTransportSE androidHttpTransport = new HttpTransportSE (URL); //Ceci est optionnel, on l'utilise pour savoir si nous voulons ou non utiliser //un paquet "sniffer" pour vérifier le message original (androidHttpTransport.requestDump) //androidHttpTransport.debug = true; try { //Envoi de la requête androidHttpTransport.call (SOAP_ACTION, envelope); //System.out.println("requestDump : " + androidHttpTransport.requestDump); //System.out.println("responseDump : " + androidHttpTransport.responseDump); //System.out.println("envelope : " + envelope.toString()); //Obtention du résultat //Object result = envelope.getResponse(); SoapPrimitive result = (SoapPrimitive)envelope.getResponse(); retour = result.toString(); //retour = "OK"; } catch (SoapFault e) { Log.e("SoadFault", "", e); retour = "KO"; } catch (IOException e) { // TODO Auto-generated catch block Log.e("IOException", "", e); retour = "KO"; } catch (XmlPullParserException e) { // TODO Auto-generated catch block // AFFICHAGE DU Body Out/In System.out.println("body out : " + envelope.bodyOut.toString()); //System.out.println("body in : " + envelope.bodyIn.toString()); System.out.println("requestDump : " + androidHttpTransport.requestDump); System.out.println("responseDump : " + androidHttpTransport.responseDump); Log.e("XmlPullParser", "", e); retour = "KO"; } return retour; /** AppelService pouet = new AppelService(); retour = pouet.wsStats("SELECT SYSDATE FROM DUAL"); return retour; */ } /** Called when the activity is first created. */ public String getTablespaces() { String retour = "test"; return retour; } }
J'ai beau chercher je ne trouve pas ce qui ne vas pas ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 02-14 17:01:17.340: E/SoadFault(877): Code: env:Sender, Reason: Caught exception while handling request: unrecognized operation: {http://tools/Tools.wsdl/}getInstanceName
Partager