Probleme d'utilisation de Webservice

Probleme d'utilisation de Webservice - PHP - Programmation

Marsh Posté le 22-11-2006 à 17:07:08    

Bonjour,
 
alors voila, je suis totalement newbie en webservices et je dois appeler une fonction du type :
 
string SubmitJob(string param1, string param2, string param3, strinf flux_xml, out int returncode, out string return_message) qui a pour but d'envoyer un fax
 
Apres quelques recherches, et étant donné que je n'ai pas php5 d'installer sur mon serveur, j'ai décidé d'utiliser la librairie NuSoap pour appeler ce webservice via php.
 
Voici le code :  
 
<?php
$job = "<RTECOM>
<InfFile>
<Dest_1>
  <Fax>0400000000</Fax> //un numero de faxe valide a la place
  </Dest_1>
<Document>
  <Delete_Files>0</Delete_Files>  
  <File_1>fax1.txt</File_1>  
  <File_1.Base64>Q2VjaSBlc3QgdW4gdHllc3QgbWVyY2kgZGUgZW4gcGFzIGVuIHRlbmlyIGNvbXB0ZQ==</File_1.Base64>  
  </Document>
<FAX>
  <Dest>1</Dest>  
  <Type>RTEFAXTYPE_TEXT_0001</Type>  
  </FAX>
  </InfFile>
  </RTECOM>";
 
require('nusoap-0.7.2/lib/nusoap.php');
 
$client = new soapclient("url" ); // remplacer par l'url fournit finissant par .asmx
 
// définition des parametres du Webservice (Requete SQL, Liste de serveurs, type de sortie)
$params = array('param1' => "toto", 'param2' => "toto", 'param3' => "toto", 'flux_xml' => $job);
 
$result = $client->call('submitjob', $params,'NAMESPACE','SOAPACTION'); // la encore fournit
 
if ($client->fault) {
 echo '<h2>Fault (This is expected)</h2><pre>'; print_r($result); echo '</pre>';
} else {
 $err = $client->getError();
 if ($err) {
  echo '<h2>Erreur</h2><pre>' . $err . '</pre>';
 } else {
  echo '<h2>Result</h2><pre>'; print_r($result); echo '</pre>';
 }
}
 
echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';
?>

 
Le retour du script reste invariablement la meme chose :
 

Fault (This is expected)
 
Array
(
    [faultcode] => soap:Server
    [faultstring] => Server was unable to process request. --> Object reference not set to an instance of an object.
    [detail] =>  
)
 

 Je vous fais grace de tout le message avec la request et le debug.
 
Quelqu'un a t'il une idée ? Ca va faire bientôt une semaine que je galère franchement la dessus  :??:  
 
Merci

Reply

Marsh Posté le 22-11-2006 à 17:07:08   

Reply

Marsh Posté le 23-11-2006 à 16:46:12    

Up!
 
y a du nouveau....
 
je viens de tester ce script sur un serveur ou est installé PHP5 et ca marche nikel :
 
$job = "<RTECOM>
<InfFile>
<Dest_1>
  <Fax>0493000000</Fax>  
  </Dest_1>
<Document>
  <Delete_Files>0</Delete_Files>  
  <File_1>fax1.txt</File_1>  
  <File_1.Base64>Q2VjaSBlc3QgdW4gdHllc3QgbWVyY2kgZGUgZW4gcGFzIGVuIHRlbmlyIGNvbXB0ZQ==</File_1.Base64>  
  </Document>
<FAX>
  <Dest>1</Dest>  
  <Type>RTEFAXTYPE_TEXT_0001</Type>  
  </FAX>
  </InfFile>
  </RTECOM>";
try {
    // Nouvelle instance de la classe soapClient
    $client = new SoapClient("url" ); //finissant par .asmx?wsdl
    // appel de la méthode getServerDate du service web
 $params = array('param1' => "toto", 'param2' => "toto", 'param3' => "toto", 'flux_xml' => $job);  'jobContent' => $job);
    $O = $client->SubmitJob($params);
 
    // Affichage du résultat
    echo $O->date ;
} catch (SoapFault $fault) {
    echo $fault;
}
 
 
Mais je n'arrive pas a retranscrire le tout en utilisant la librairie Nusoap, obligatoire si je n'ai pas PHP5 d'installé....
 
Please quelqu'un pour m'aider ?  :pt1cable:

Reply

Marsh Posté le 23-11-2006 à 17:28:47    

t'as le wsdl du service que tu veux utiliser ? en particulier la partie concernant SubmitJob

Reply

Marsh Posté le 23-11-2006 à 18:30:15    

soju a écrit :

t'as le wsdl du service que tu veux utiliser ? en particulier la partie concernant SubmitJob


 
<wsdl:definitions targetNamespace="http://url/">

 <wsdl:types>

 <s:schema elementFormDefault="qualified" targetNamespace="url">

 <s:element name="SubmitJob">

 <s:complexType>

 <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="param1" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="param2" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="param3" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="jobContent" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
 
c'est ca qui t'interesse ?
 
Merci

Reply

Marsh Posté le 24-11-2006 à 10:00:28    

cette page pourra peut être t'aider : http://users.skynet.be/pascalbotte [...] vanced.htm
tiens nous au courant

Reply

Marsh Posté le 24-11-2006 à 10:57:04    

soju a écrit :

cette page pourra peut être t'aider : http://users.skynet.be/pascalbotte [...] vanced.htm
tiens nous au courant


 
J'ai deja essayé ca avant, il me retourne egalement la meme erreur  :??:

Reply

Marsh Posté le 24-11-2006 à 11:06:08    

sinon c'est normal que tu aies flux_xml à la place de jobContent ?
 
dans ton 2ème prog tu as jobContent mais la ligne est syntaxiquement fausse, une erreur de copier coller ?

Code :
  1. $params = array('param1' => "toto", 'param2' => "toto", 'param3' => "toto", 'flux_xml' => $job);  'jobContent' => $job);


 
EDIT: fôte

Message cité 1 fois
Message édité par soju le 24-11-2006 à 11:07:01
Reply

Marsh Posté le 24-11-2006 à 11:50:20    

soju a écrit :

sinon c'est normal que tu aies flux_xml à la place de jobContent ?
 
dans ton 2ème prog tu as jobContent mais la ligne est syntaxiquement fausse, une erreur de copier coller ?

Code :
  1. $params = array('param1' => "toto", 'param2' => "toto", 'param3' => "toto", 'flux_xml' => $job);  'jobContent' => $job);


 
EDIT: fôte


 
Erreur de copier/coller effectivment :p

Reply

Marsh Posté le 24-11-2006 à 11:53:47    

lerdouille a écrit :

J'ai deja essayé ca avant, il me retourne egalement la meme erreur  :??:

tu as essayé en utilisant flux_xml ou jobContent ?

Reply

Marsh Posté le 24-11-2006 à 13:31:02    

soju a écrit :

tu as essayé en utilisant flux_xml ou jobContent ?


 
j'ai essayé avec jobContent, j'ai bien mis les bons noms des variables en rapport avec le wsdl

Reply

Marsh Posté le 24-11-2006 à 13:31:02   

Reply

Marsh Posté le 24-11-2006 à 14:24:34    

je donne ma langue au chat, ou alors donne nous l'url de ton service qu'on puisse tester

Reply

Marsh Posté le 24-11-2006 à 15:05:51    

impossible, c'es un service ou on doit transmettre des accès fournis par la société :s c'est pour ca que j'ai remplacé les nom des variables dans mes posts ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed