|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 20 ![]() |
Bonjour,
j'ai besoin de migrer mon appel web service php4 sous la version php5, cependant je me heurte à une difficulté, le passage des paramètres. Afin de vous préciser le contexte, ci-dessous l'appel php4 puis php5. Ce dernier ne fonctionne pas. appel php4 (fonctionne bien) : Code :
appel php5 (ne fonctionne pas) : Code :
Code :
Code :
Remarque : - je précise que le web service côté serveur ne propose pas de wsdl, j'ai donc besoin que mon appel en php5 fonctionne en mode non wsdl. - je me suis basé au départ sur cet exemple : http://devzone.zend.com/node/view/id/689 mais il ne passe qu'un seul paramètre (j'ai testé également d'autres syntaxes mais sans succès, dans la portion de code que je vous présente, une syntaxe que j'ai repris d'un appel php5 en mode wsdl qui fonctionne). Auriez-vous une idée pour que ma migration vers php5 fonctionne ? |
||||||||
|
|
00
|
|
|
#2 | ||
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Pourquoi ne pas simplement appeler la méthode __soapCall() ?
Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 20 ![]() |
Bonjour Bisûnûrs,
je viens de tester mais l'erreur persiste : Code :
Si vous avez d'autres propositions je suis preneur. |
||
|
|
00
|
|
|
#4 |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Ton serveur Java a l'air d'attendre un entier en paramètre et tu lui fournis un tableau associatif.
En passant les paramètres comme ça : Code :
$retour = $soapclient->__soapCall( 'METHODE_DISTANTE', $tab ); |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 695 ![]() |
Salut
La doc concernant SoapClient : http://fr2.php.net/manual/fr/soapclient.soapclient.php Citation:
Code :
$soapclient = new SoapClient(NULL, array(... etc ...); Faut peut être lui indiquer le service Web en question (en 1er argument), non ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#6 |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
|
|
|
00
|
|
|
#7 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 695 ![]() |
@Bisûnûrs
A ben oui, tout à fait ... désolé Citation:
Provoqué par quoi, alors là ???
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 20 ![]() |
Merci pour vos contributions :
je confirme que je suis bien en mode non wsdl. A mon niveau, je n'ai pas vraiment d'autres idées et je pense que je vais être obligé de m'orienter vers la lib nusoap compatible php5 : http://code.google.com/p/nusoap-for-php5/downloads/list Je trouve ça tout de même dommage de ne pas utiliser l'extension nusoap de php5. Si vous avez d'autres propositions, je suis preneur. |
|
|
00
|
|
|
#9 | |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Et :
Citation:
|
|
|
|
00
|
|
|
#10 | ||||
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 20 ![]() |
Je viens de tenter mais exception toujours présente.
Par contre, tu me dis : "Ton serveur Java a l'air d'attendre un entier en paramètre et tu lui fournis un tableau associatif" Hors dans l'appel suivant, que tu me conseilles, mon parametre : "$tab" reste un tableau associatif. Code :
$retour = $soapclient->__soapCall( 'METHODE_DISTANTE', $tab ); Code :
Code :
|
||||
|
|
00
|
|
|
#11 |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Non, je passe un tableau à SOAP qui se charge de le transformer en liste de paramètres.
Dans ton premier code, tu passais un tableau de tableau, ce qui fait que tu avais un seul paramètre passé à la fonction, de type tableau. Quand tu passes seulement un tableau, ça "répartit" les paramètres à la manière de call_user_func_array(). Si l'exception est toujours présente, le message est-il toujours exactement le même ? A mon avis ça reste un problème de typage, vu que Java a un typage strict. |
|
|
00
|
|
|
#12 |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
|
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 20 ![]() |
Le problème de typage semble cohérent, mais y a t-il une solution pour que cela passe ?
Dans l'appel php4, je ne rencontre pas ce problème bizarrement. |
|
|
00
|
|
|
#14 |
![]() ![]() Josselin Développeur Web Inscription : janvier 2004 Messages : 9 050 ![]() |
Je n'ai pas inspecté le code de la librairie nusoap, si ça se trouve elle faisait un transtypage des données en fonction de ce qui était passé.
Vu que le serveur attend des entiers, essaie de passer des entiers et non des chaines ... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com