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

Bibliothèques et frameworks PHP Discussion :

[Web Service] Soap server PHP5 wsdl


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 34
    Par défaut [Web Service] Soap server PHP5 wsdl
    Bonsoir,

    Je travaille avec un webservice (Serveur et client en PHP) donc tous naturellement le wsdl est en RPC/Encoded.

    Le problème est que ceci n'est pas compatible avec tous les langages et ni "WSI Compliant".

    Je ne connais pas assez bien la structure des WSDL pour être sur de mon travail. Un client veut donc se connecter avec perl au webservice, donc je travaille sur l'adaptation du wsdl en document/literal wrapped

    La première différence que j'ai remarqué, et qu'il faudrait travaillé avec des objets ? Comment faire si les fonctions du webservice ont déjà toutes été créée et ne travaille pas de cette façon ?

    PS: Est ce que quelqu'un connaît une bonne doc concernant la création de wsdl (la description de tous les types,....)

  2. #2
    mon_nom_est_personne
    Invité(e)
    Par défaut
    j'ai monter le meme genre de tuc et malheureusement la seul doc que j'ai trouve est la specification w3c http://www.w3.org/2002/ws/desc/.

    Mais je vois pas le souci. un fichier wsdl et un fichier xml qui decrit ton service. C'est independant de la techno (tout l'interet d'un soap). A partir du moment ou l'objet est monter, et si la description est bien faite, il a pas de souci.

    Pour info j'ai monter un web service en php et il est tourne sans modification sur des palteforme java ou je ne sais quoi d'autre.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 34
    Par défaut
    Salut,

    Alors donc j'ai un problème de compréhension du wsdl. Les clients qui veulent se connecter au webservice ne jure que par du document/literal wrapped et travail principalement en perl (et font des tests en java).

    Ils doivent avoir une sorte de framework qui découvre automatiquement le webservice et rencontre des problèmes.

    J'ai une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getIdentite( int x, int y)
    qui fonction bien avec mon wsdl en rpc/encoded.

    Mais lorsque je passe en document/literal wrapped je suis "obligé" de n'envoyer qu'un seul paramètre aussi bien en sortie qu'en entrée.

    Donc pour mes tests j'ai modifié ma fonction pour quelle accepte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getIdentite($parameters) avec $parameters->x et $parameters->y
    Ensuite elle renvoie un objet $result qui contient les données

    Avant elle renvoyé un objet contenant un tableau mais une fois passé en document/literal wrapped, j'ai remarqué que le tableau était sous la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableau[$i][key] et tableau[$i][value]
    Je vais lire attentivement comment faire pour écrire un WSDL.
    Si quelqu'un connait un générateur de WSDL pour php qui fonctionne très bien et qui fait tout les formats de WSDL, ça m'intéresse aussi....

  4. #4
    mon_nom_est_personne
    Invité(e)
    Par défaut
    je vois deux erreurx possibles :
    - La definition de ta fonction dans le wsdl n'est pas bonne
    - Le fw de ton client ne support pas pas completement la specification.

    Peux-tu nous monter la declaration de ta fonction dans ton wsdl et la partie ou tu defini tes types ?

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 34
    Par défaut
    Voici le WSDL en mode wrapped dans la pièce jointe
    Fichiers attachés Fichiers attachés

  6. #6
    mon_nom_est_personne
    Invité(e)
    Par défaut
    je viens de jeter un coup d'oeila ton wsdl, il m'a l'air kasher. la seul chose que je trouve bizarre c'est d'avoir un message, un element qui a le meme nom; EntrepResult. Ca peu surment brouille les pistes. Ensuite, le probleme peu p-e venir des types complex. Je me rappelle avoir un un mal de chien a faire marcher ca et me suis rabatu sur des choses plus generiques comme des array de string ou d'entier.

    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
     
    xsd:complexType name="ArrayOfString">
    				<xsd:complexContent>
              			<xsd:restriction base="soapenc:Array">
                		<xsd:attribute ref="soapenc:arrayType"
    					arrayType="xsd:string[]"/>
              			</xsd:restriction>
            		</xsd:complexContent>
    			</xsd:complexType>
    			<xsd:complexType name="ArrayOfInt">
    				<xsd:complexContent>
              			<xsd:restriction base="soapenc:Array">
                		<xsd:attribute ref="soapenc:arrayType"
    					arrayType="xsd:int[]"/>
              			</xsd:restriction>
            		</xsd:complexContent>
    			</xsd:complexType>
    			<xsd:complexType name="ArrayCoord">
    				<xsd:complexContent>
              			<xsd:restriction base="soapenc:Array">
    						<xsd:sequence>
    							<xsd:element name="x" type="xsd:int" maxOccurs="1"
    								minOccurs="1">
    							</xsd:element>
    							<xsd:element name="y" type="xsd:int" maxOccurs="1"
    								minOccurs="1">
    							</xsd:element>
    							<xsd:element name="width" type="xsd:int"
    								maxOccurs="1" minOccurs="1">
    							</xsd:element>
    							<xsd:element name="height" type="xsd:int" maxOccurs="1" minOccurs="1"></xsd:element>
    						</xsd:sequence>
    					</xsd:restriction>
    				</xsd:complexContent>
    			</xsd:complexType>
    Es-que tu as le message d'erreur du serveur ? ca aide aussi a savoir ou ca part en sucette.

Discussions similaires

  1. [Web Service][SOAP] Erreur avec php5 et soap
    Par lehic dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 02/08/2011, 17h23
  2. [Web Service] Web Service SOAP : Accès au WSDL
    Par gui38 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/03/2010, 16h15
  3. [Web Service][SOAP] Client PHP5 et tns:ArrayOfString
    Par ymoreau dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 29/07/2009, 11h33
  4. [Web Service][SOAP] PHP5 SOAP et header
    Par ckeromen dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/12/2006, 20h27
  5. [Web Service][SOAP] WSDL/PHP5/SOAP: Renvoyer un tableau
    Par Netman dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 19/05/2006, 19h08

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