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

XML/XSL et SOAP Discussion :

Utiliser des webservices avec nusoap


Sujet :

XML/XSL et SOAP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut Utiliser des webservices avec nusoap
    Bonjour,

    - je développe un site de Ecommerce (PHP) fonctionnant en parallele avec un logiciel de gestion (WinDEV).
    - Des procédures pour les stocks et autres sont toutes faites sur le logiciel, j'ai créé des Webservices grace a WinDEV et j'aimerais pouvoir les utiliser grace a un serveur SOAP
    -j'ai configuré mon apache, j'ai téléchargé le script nusoap.php
    -ensuite j'ai placé mon fichier XML dans WWW comme il etait indiqué
    -j'ai ensuite réalisé la page suivante, pour tester simplement avec la procédure sNombreEnLettre qui apres avoir recupéré un nombre l'ecrit en tout lettre voici donc mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?
    $chiffre=20;
    require ('nusoap.php');
    $s = new soap_server;
    $s -> register('sNombreEnLettre');
     
    function sNombreEnLettre($chiffre){
    	if (empty($chiffre))
    		return new_soap_fault("Client", "Pas d entree", "'chiffre' doit etre rempli");
    	}
    $s -> service($HTTP_RAW_POST_DATA);
    ?>
    -Mais cela m'a affiché les lignes suivantes :
    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
     
    Notice: Undefined variable: HTTP_RAW_POST_DATA in c:\easyphp\www\testecom\index.php on line 11
     
    Notice: Undefined index: content-type in c:\easyphp\www\testecom\nusoap.php on line 3813
     
    Notice: Undefined index: content-type in c:\easyphp\www\testecom\nusoap.php on line 3814
     
    Warning: Cannot modify header information - headers already sent by (output started at c:\easyphp\www\testecom\index.php:11) in c:\easyphp\www\testecom\nusoap.php on line 3778
     
    Warning: Cannot modify header information - headers already sent by (output started at c:\easyphp\www\testecom\index.php:11) in c:\easyphp\www\testecom\nusoap.php on line 3778
     
    Warning: Cannot modify header information - headers already sent by (output started at c:\easyphp\www\testecom\index.php:11) in c:\easyphp\www\testecom\nusoap.php on line 3778
     
    Warning: Cannot modify header information - headers already sent by (output started at c:\easyphp\www\testecom\index.php:11) in c:\easyphp\www\testecom\nusoap.php on line 3778
     
    Warning: Cannot modify header information - headers already sent by (output started at c:\easyphp\www\testecom\index.php:11) in c:\easyphp\www\testecom\nusoap.php on line 3778
     
    Warning: Cannot modify header information - headers already sent by (output started at c:\easyphp\www\testecom\index.php:11) in c:\easyphp\www\testecom\nusoap.php on line 3778
    SOAP-ENV:Clientmethod '' not defined in service
    Si vous pouviez m'orienter, ou m'aider par ce que

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 56
    Points
    56
    Par défaut
    Salut,
    Moi aussi j'ai voulu utiliser nusoap, menfin maintenant soap est intégré a php5 et est plus simple d'utilisation. Pour avoir php5 et un serveur apache2 et mysql5 utilise wamp server a la place de easyphp.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    c'est pas trop ideal pour moi enfin je vais voir
    t'aurais pas des cours ou des bons tutos ca la je rame a mort

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 56
    Points
    56
    Par défaut
    Et bien wamp server te fournit les même services que easy php mais en plus a jour.

    Sinon bin moi perso j'ai lu la doc w3c : http://www.w3.org/TR/wsdl#_wsdl

    http://classes.scriptsphp.org/article.Construire-un-service-web-en-php-5


    Sinon voici un exemple :

    coté client:
    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
     
    try{
    $wsdl = "http://tonadresse/gestionUpDown.wsdl";
     
            // Nouvelle instance de la classe soapClient
            $client = new SoapClient($wsdl,  array('trace' => 1, 'soap_version'  => SOAP_1_1));
     
           	$parametres = array('id_client' => $id_client, 					'passClient' => md5($passClient),
      			'imgName' => $_GET['titre'],
       			'passImg' => $password, 	
        			'description' => htmlentities($_POST['description']),
        												'tags' => htmlentities($_POST['tags']),
    														'nom' => htmlentities($_POST['name']));
     
            $result = $client->__soapCall('modifRef', $parametres);
     
          }
      		catch(SoapFault $fault)
      		{
      			echo $fault;
      		}

    coté serveur:
    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
     
    // La classe qui va gérer les requètes SOAP
    class GestionUpDown {    
        function modifRef($id_client, $passClient, $imgName, $passImg, $description, $tags, $nom)
    		{
    // les traitement etc....
    	return array('code_erreur' => 0, 'msg' => 'Reussi');
    }
     
    }//fin de class
     
    // On tente d'instancier la classe soapServer
    // Si cela s'avère impossible, on lève une exception
    try {
        $server = new SoapServer('../soap/gestionUpDown.wsdl', array('trace' => 1, 'soap_version' => SOAP_1_1));
        // On définit la classe qui va gérer les requètes SOAP
        $server -> setClass('GestionUpDown');
     
       } catch (Exception $e) {
        echo $e;
    }
     
     
    // La méthode POST a été utilisée pour appeller cette page.
    // On suppose donc qu'une requète a été envoyée, on la gère
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $server -> handle();
    } 
    // sinon, on affiche une liste des méthodes que peut gérer ce serveur
    else {
        echo '<strong>This SOAP server can handle following functions : </strong>';    
        echo '<ul>';
        foreach($server -> getFunctions() as $func) {        
            echo '<li>' , $func , '</li>';
     
        }
        echo '</ul>';
         echo "<a href='../soap/gestionUpDown.wsdl'>Voir le fichier wsdl associé:</a><br />";
        echo "Ce fichier vous permettra de connaître les types d'entrée et de sortie des fonctions.<br />";
     
    }
    et le fichier wsdl associé(en partie)
    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
     
    <?xml version="1.0" encoding="utf-8" ?> 
    <definitions name="GestionUpDown"
    			 targetNamespace="http://localhost/projetm2/stockR/soap/gestionUpDown.wsdl"
    			 xmlns:tns="http://localhost/projetm2/stockR/soap/gestionUpDown.wsdl"
    			 xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
    			 xmlns:xsd1="http://localhost/projetm2/stockR/soap/schema"
    			 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    			 xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    			 xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    			 xmlns="http://schemas.xmlsoap.org/wsdl/">
     
     
    <message name="ModifRefRequest" >
    	<part name="id_client" type="xsd:int"/>
    	<part name="passClient" type="xsd:string"/>
    	<part name="imgName" type="xsd:string"/>
    	<part name="passImg" type="xsd:string"/>
    	<part name="description" type="xsd:string"/>
    	<part name="tags" type="xsd:string"/>
    	<part name="nom" type="xsd:string"/>
    </message>			 
     
     
    <message name="ModifRefResponse">
    	<part name="code_erreur" type="xsd:int" />
    	<part name="msg" type="xsd:string" />
    </message>
     
     
    <portType name="GestionUpDownPortType">
    	<operation name="modifRef">
    		<input message="tns:ModifRefRequest"/>
    		<output message="tns:ModifRefResponse"/>
    	</operation>
     
    <binding name="GestionUpDownBinding" type="tns:GestionUpDownPortType">
    	<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    	<operation name="modifRef">
    		<soap:operation soapAction="http://localhost/projetm2/stockR/soap/gestionUpDown.wsdl"/>
    		<input>
    			<soap:body use="encoded" namespace="http://localhost/projetm2/stockR/soap/gestionUpDown.wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    		</input>
    		<output>
    			<soap:body use="encoded" namespace="http://localhost/projetm2/stockR/soap/gestionUpDown.wsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    		</output>
    	</operation>
    <service name="GestionUpDownService">
    	<documentation>
    		Ce service permet d'uploader des images ou d'en télécharger.
    	</documentation>
    	<port name="GestionUpDownPort" binding="tns:GestionUpDownBinding">
    		<soap:address location="http://localhost/projetm2/stockR/services/gestionUpDown.php"/>
    	</port>
    </service>
    </definitions>
    Bonfaut remplacer les localhost/... par ton adresse.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    je n'ai pas le droit d'utiliser wamp
    donc je dois me debrouiller avec nusoap.php
    galere mais je pas de fichier .wsdl avec ce qui a été généré par windev

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    est ce qu'un fichier xml suffit

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 159
    Points : 54
    Points
    54
    Par défaut
    sinon dans mon fichier XML qui contient toutes les fonctions, j'ai gInsert_Document_Domaine_2 qui insere une commande et la meme avec response me retourne l'ID, mais je ne vois pas comment le recuperer quelque part

    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
    <xsd:element name="gINSERT_DOCUMENT_Domaine_2">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="sTypeDoc" type="xsd:string"/>
    <xsd:element name="sCodeEts" type="xsd:string"/>
    <xsd:element name="sSouche" type="xsd:string"/>
    <xsd:element name="sCodeDepot" type="xsd:string"/>
    <xsd:element name="sCodeTiers" type="xsd:string"/>
    <xsd:element name="sDate" type="xsd:string"/>
    <xsd:element name="sCodeRepresentant" type="xsd:string"/>
    <xsd:element name="sNumeroDocument" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
     
    <xsd:element name="gINSERT_DOCUMENT_Domaine_2Response">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="Result" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>

Discussions similaires

  1. [JMS] Utilisation des "queue" avec JMS
    Par be_tnt dans le forum Java EE
    Réponses: 1
    Dernier message: 01/11/2006, 16h05
  2. Utilisation des paramètres avec rowsource - 97 et 2003
    Par IntenseM3 dans le forum Access
    Réponses: 1
    Dernier message: 10/05/2006, 09h18
  3. Peut on utiliser des Webservices WinDEV avec PHP ?
    Par budiste dans le forum WebDev
    Réponses: 8
    Dernier message: 30/03/2006, 11h56
  4. utilisation des webservices en vb6
    Par Amri_Daly dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 09/01/2006, 10h50

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