Et il y a un proxy configuré sur ton navigateur ?
Essaie de rapatrier la WSDL et voir si elle est chargée.
Version imprimable
Et il y a un proxy configuré sur ton navigateur ?
Essaie de rapatrier la WSDL et voir si elle est chargée.
oulalal je sent la config de serveur :ouin:
Rapatrié?? comment ca ??
Tu tapes l'adresse de la wsdl dans ton navigateur.
Tu enregistres sous, toto.wsdl.
Tu la colles dans ton serveur local et tu références ta wsdl locale dans tes constructeurs SoapClient et SoapServer.
ouki bon je vais essayer ca
Nan c'est pas cela est ce que le probleme ne viendrai de mon fichier WSDL qui serait mal concu ???
Bonjour,
Repostes ton wsdl en entier stp.
Sinon en relisant il y a un truc qui m'intrigue :
Tu cherches à consommer un webservice existant en programmant un client de ce webservice.
Ou tu cherches aussi à programmer le serveur hôte du service ?
Le code du serveur est bien sur cette machine ?
http://dern-web.in.ac-nancy-metz.fr/sos_signalement/
Bonjour,
Alors je cherche à programmer le service, je vais essayait de m'expliquer et d'être clair.
J'ai programmé une appli qui doit devenir un web service qui sera appeler dans d'autre applis. Voilou
sinon mon WSDL
et oui le code du serveur est bien sur la machine http://dern-web.in.ac-nancy-metz.fr/sos_signalement/Code:
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<?xml version='1.0' encoding='UTF-8'?> <definitions name="CSP" targetNamespace="urn:CSP" xmlns:tns="urn:CSP" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:typens="urn:CSP" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:CSP"</xsd:schema> </types> <message name="entier"> <part name="entier" type="xsd:int"/> </message> <message name="caractere"> <part name="caractere" type="xsd:string"/> </message> <portType name="CspPorts"> <operation name="accueil"> <input message="entier"/> <output message="caractere"/> </operation> </portType> <binding name="MyBinding" type="typens:CspPorts"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> <operation name="accueil"> <soap:operation soapAction="http://dern-web.in.ac-nancy-metz.fr/sos_signalement/accueil"/> </operation> </binding> <service name="accueil"> <documentation>SOS</documentation> <port name="CspPorts" binding="typens:MyBinding"> <soap:address location="http://dern-web.in.ac-nancy-metz.fr/sos_signalement/index.php"/> </port> </service> </definitions>
Ligne 12, ta balise ouvrante <xsd:schema> ne se ferme pas....
Sinon le reste semble bon.
Bon bahh mauvaise nouvel toujours rien GNGNNNNNNnngnnn, pas de changement :mur:
J'ai bien acces au fichier WSDlL quand je met l'url dans le navigateur, y'a plus de faute et l'erreur reste le fait qu'il ne peut pas charger le fichier, pourquoiiiiiii ?? :aie:
Le wsdl reste dans le cache. Redémarre ton serveur, ça devrait se mttre à jour.
Déjà fait :calim2:
Est-ce que tu navigues sur le web via un proxy ? Pour cela, va voir les options de ton navagateur :
sur FF : Outils / Options... / Avancé / Réseau / Paramètres
Y a-t-il des valeurs de renseignées ?
Voui y'a adresse de configuration automatique du proxy qui est plein
Et j'imagine que c'est la case qui est cochée... S'il n'y a rien d'autre, ça va compliquer les choses.
Tapes l'url du fichier qui est spécifié pour la configuration automatique (un *.pac). Récupère le, affiche le au bloc notes.
Récupère la valeur de PROXY_PRINC (une des premières lignes non commentées).
Colle cette adresse dans la config manuelle du proxy :
soit url.proxy.http:port . Sépare bien le port et relance ton navigateur. Essaie d'afficher la wsdl via ton navigateur pour voir.
alors je pense qu'on a peut ê un élément de réponse la dedans
Y'a pas de PROXY_PRINC, c'est un signe ??Code:
1
2
3
4
5
6
7
8
9
10
11 function FindProxyForURL(url, host) { if (isPlainHostName(host) || dnsDomainIs(host, "localhost") || dnsDomainIs(host, "XXXXXX") || dnsDomainIs(host, "XXXXXXXXX")) return "DIRECT"; else return "PROXY XXXXXXXX:xXXX"; }
J'espere en tout cas X.X
Il sort d'où ce code ? Il est exécuté ?
Tu as des valeurs à la place des XXX ? Surtout la dernière ligne...
Vi VI y'a des valeur à la place des XXX,
le code la y sort du *.pac
OK,
si j'ai bien compris, ce code dit :
Pour les url localhost ou les 2 autres désignées dans le if, on passe en direct,
Pour les autres, on passe par le proxy..
Donc il faut que tu configures ton client pour qu'il utilise le proxy pour accéder au service distant.
Comme ceci :
Code:
1
2
3
4
5
6
7
8
9
10
11 $client = new SoapClient( null, Array ( 'location' => 'http://devdam.in.ac-nancy-metz.fr/sos-signalement/index.php', 'uri' => 'http://devdam.in.ac-nancy-metz.fr/sos-signalement/', 'proxy_host' => XXXXXXXXXXXXX, 'proxy_port' => intval(PPPP), //'proxy_login' => '', //'proxy_password'=> '', 'trace' => 1, 'style' => SOAP_RPC ));
NB: J'ai mis NULL là on mettait le chemin vers la wsdl. Ce n'est pas grave puisqu'on spécifie location et uri.
Remplace les valeurs en gras par ce qu'il y a dans la ligne "PROXY XXXXXXXXXXXXX:PPPP".
Côté serveur, il faut que tu spécifies un chemin local vers ta wsdl, pas une url.
Ahhh y'a du mieux !! :ccool:
Alors cette fois le serveur répond :mouarf:
Mais j'ai toujours cette P..... d'erreur de parsing, cette fois ce n'est plus la même.Code:
1
2
3
4
5
6
7
8
9
10 Error: SOAP-ERROR: Parsing WSDL: Couldn't find in '/appli/sos-signalement/www/add.wsdl' Request : <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://devdam.in.ac-nancy-metz.fr/sos-signalement/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:accueil><param0 xsi:type="xsd:string">1</param0></ns1:accueil></SOAP-ENV:Body></SOAP-ENV:Envelope> Response: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>WSDL</faultcode><faultstring>SOAP-ERROR: Parsing WSDL: Couldn't find <definitions> in '/appli/sos-signalement/www/add.wsdl'</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
Sur la page du serveur j'ai
Je comprend pas j'ai bien des balises definitions pourtant je redonne au cas ou le WSDLCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <SOAP-ENV:Envelope> − <SOAP-ENV:Body> − <SOAP-ENV:Fault> <faultcode>WSDL</faultcode> − <faultstring> SOAP-ERROR: Parsing WSDL: Couldn't find <definitions> in '/appli/sos-signalement/www/add.wsdl' </faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Code:
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<?xml version='1.0' encoding='UTF-8'?> <definitions name="CSP"> targetNamespace="urn:CSP" xmlns:tns="urn:CSP" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:typens="urn:CSP" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:CSP"/> </types> <message name="entier"> <part name="entier" type="xsd:int"/> </message> <message name="caractere"> <part name="caractere" type="xsd:string"/> </message> <portType name="CspPorts"> <operation name="accueil"> <input message="entier"/> <output message="caractere"/> </operation> </portType> <binding name="MyBinding" type="typens:CspPorts"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="accueil"> <soap:operation soapAction="http://dern-web.in.ac-nancy-metz.fr/sos_signalement/accueil"/> </operation> </binding> <service name="accueil"> <documentation>SOS</documentation> <port name="CspPorts" binding="typens:MyBinding"> <soap:address location="http://dern-web.in.ac-nancy-metz.fr/sos_signalement/index.php"/> </port> </service> </definitions>
Essaye de mettre ça dans ta wsdl :
Code:
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<?xml version='1.0' encoding='UTF-8'?> <wsdl:definitions name="CSP" targetNamespace="http://www.example.org/CSP/" xmlns:tns="http://www.example.org/CSP/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:typens="http://www.example.org/CSP/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > <wsdl:types> <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:CSP"></xsd:schema> </wsdl:types> <wsdl:message name="entier"> <wsdl:part name="entier" type="xsd:int"/> </wsdl:message> <wsdl:message name="caractere"> <wsdl:part name="caractere" type="xsd:string"/> </wsdl:message> <wsdl:portType name="CspPorts"> <wsdl:operation name="accueil"> <wsdl:input message="tns:entier"/> <wsdl:output message="tns:caractere"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="MyBinding" type="typens:CspPorts"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="accueil"> <soap:operation soapAction="http://dern-web.in.ac-nancy-metz.fr/sos_signalement/accueil"/> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="accueil"> <wsdl:documentation>SOS</wsdl:documentation> <wsdl:port name="CspPorts" binding="typens:MyBinding"> <soap:address location="http://dern-web.in.ac-nancy-metz.fr/sos_signalement/index.php"/> </wsdl:port> </wsdl:service> </wsdl:definitions>