Salut,
J'ai déjà posté à propos de php5 et du support de soap. Mais en attendant une réponse je m'essaie à Soap avec la librairie NuSoap.php et j'utilise un fichier wsdl afin de déclarer les services disponible sur mon serveur web par un client lambda.
Lorsque j'éxécute le script du serveur il reconnait bien le fichier wsdl et le service associé.
Mais lorsque je veux lancer le client j'obtiens un message d'erreur:
Erreur de construction
no operations defined in the WSDL document!
L'opération non définie est pour lui "CreerCompte" hors je définit dans mon fichier wsdl une operation CreerCompte et je l'implémente dans mon fichier serveur.
Voici le serveur:
Code :
- <?php
- include('nusoap.php');
- $server = new soap_server('http://localhost/projetm2/webservice/client/creer_compte.wsdl','wsdl');
- $server->debug_flag=false;
- function CreerCompte($login, $password, $mail) {
- return "coucou";
- }
- $server->service($HTTP_RAW_POST_DATA); ?>
|
Voici le client:
Code :
- <?php
- include('nusoap.php');
- try {
- $wsdl = "http://localhost/projetm2/webservice/client/creer_compte.wsdl";
- // Nouvelle instance de la classe soapClient
- $client = new soapclient($wsdl, 'wsdl');
- $err = $client->getError();
- if ($err)
- {
- echo '<h2>Erreur de construction</h2><pre>' . $err . '</pre>';
- }
- else
- {
- $parametres = array(
- 'login' => 'toby',
- 'password' => 'pass',
- 'mail' => 'mail@m.fr'
- );
- // appel de la méthode CreerCompte du service web
- $id_client = $client->call('CreerCompte', $parametres);
- // Affichage du résultat
- echo "coucou voici le résultat: $id_client";
- }
- } catch (Exception $e) {
- echo $e;
- }
- ?>
|
Et le fichier wsdl:
Code :
- <definitions name="CreerCompteService" targetNamespace="http://localhost/projetm2/webservice/client/creer_compte.wsdl">
- <message name="CreerCompteRequest">
- <part name="login" type="xsd:string"/>
- <part name="password" type="xsd:string"/>
- <part name="mail" type="xsd:string"/>
- </message>
- <message name="CreerCompteResponse">
- <part name="return" type="xsd:string"/>
- </message>
- <portType name="CreerComptePortType">
- <operation name="CreerCompte">
- <input message="tns:CreerCompteRequest"/>
- <output message="tns:CreerCompteResponse"/>
- </operation>
- </portType>
- <binding name="CreerCompteBinding" type="tns:CreerComptePortType">
- <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
- <operation name="CreerCompte">
- <soap:operation soapAction="http://localhost/projetm2/webservice/client/creer_compte.wsdl"/>
- <input>
- <soap:body use="encoded" namespace="http://localhost/projetm2/webservice/client" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
- </input>
- <output>
- <soap:body use="encoded" namespace="http://localhost/projetm2/webservice/client" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
- </output>
- </operation>
- </binding>
- <service name="CreerCompteService">
- <documentation>
- Permet à un utilisateur de s'enregistrer en tant que client auprès de mon web services.
- </documentation>
- <port name="CreerComptePort" binding="tns:CreerCompteBinding">
- <soap:address location="http://localhost/projetm2/webservice/client/creer_compte.php"/>
- </port>
- </service>
- </definitions>
|
Message édité par Toby14 le 26-11-2005 à 20:38:15