Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Services Web
Services Web Forum d'entraide pour les services Web en PHP, qui permettent de créer et de consommer facilement des webservices (génération de WSDL etc.). Exemples : SOAP, NuSOAP, REST, SCA-SDO... Avant de poster -> Cours webservices
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/06/2011, 17h53   #1
Invité de passage
 
Homme Stéphane
Développeur informatique
Inscription : août 2004
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 2
Points : 1
Points : 1
Envoyer un message via MSN à stefdenice
Par défaut PHP SOAP WSDL : string et max lenght ?

Bonjour,

Je cherche la solution un problème en vain : Peut être je fais fausse route, connaissant peu les services web ?

Je souhaite récupérer le contenu d'un champ de base de données de type VARCHAR(4000) via un service web SOAP car ce champ contient une commande CSV.

Mettre en place le serveur avec son client SOAP en php a été relativement rapide, j'ai réussi à produire mon premier WSDL avec eclipse et à le valider.
Après plusieurs tentatives cela fonctionne quand mes fonctions PHP retournent des types simple, des types complexes, des arrayOfString ...

Mais malheureusement je n'arrive pas à retourner depuis ma fonction PHP une chaine de plus de 114 caractères ...

A partir de 115 caractères le client SOAP capture une exception ...

J'ai tenté de créé un simpleType, histoire de voir si je peux dépasser ce max length de 114 caractères

Code :
1
2
3
4
5
<xsd:simpleType name="char256">
<xsd:restriction base="xsd:string">
	<xsd:maxLength value="256" />
</xsd:restriction>
</xsd:simpleType>
Cela n'a pas marché ...



Voila un echo de l'exception :

Citation:
Client -> SoapFault exception: [Client] looks like we got no XML document in /var/www/monsite/soap_client.php:20 Stack trace: #0 [internal function]: SoapClient->__call('getCdeWeb', Array) #1 /var/www/monsite/soap_client.php(20): SoapClient->getCdeWeb('5251') #2 {main}-->faultstring
getCdeWeb($orders_id) est la fonction php dans mon serveur SOAP qui renvoie le contenu de ce champ de base de données ...

Est ce que je fais fausse route au niveau de l'usage des services web ?
stefdenice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 11h23   #2
Invité de passage
 
Homme Stéphane
Développeur informatique
Inscription : août 2004
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 2
Points : 1
Points : 1
Envoyer un message via MSN à stefdenice
J'ai fini par trouver mon erreur.

Cela vient des accents du français : Le contenu de mon champ contient de du texte accentué comme "Téléphone : ..."

Tout fonctionne si la fonction PHP getCdeWEB du soap server renvoie de l'ASCII ...
Quand la fonction renvoyait un "é" alors l'exception SOAP était levée

Seulement j'aimerai bien garder ces accents,

Si quelqu'un connait une solution tout aide serait bienvenue.

MAJ et SOLUTION :
Un return utf8_encode($valeur) dans ma fonction getCdeWEB a solutionné mon problème ... Je vais pouvoir finaliser mon projet d'EDI via SOAP/PHP5 avec le client SSIS de SQL Serveur.

stefdenice est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h44.


 
 
 
 
Partenaires

Hébergement Web