[WebService] Passage d'objets en paramètre
Bonjour,
Tout d'abord, un excellente année à tous !
Et maintenant mon problème :)
j'ai créé un webservice en dotnet(c#) dans lequel j'ai une méthode (pushContact) qui reçoit un objet en paramètre.
Voici l'essentiel de mon code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
class Contact
{
public $firstName;
public $lastName;
public function __construct()
{
}
}
$client = new SoapClient($WDSL, array( 'trace'=>true, "classmap"=>array('Contact'=>'Contact'), 'soap_version'=>SOAP_1_2, 'uri'=>$WS_NAMESPACE) );
$param = new SoapVar($contact, SOAP_ENC_OBJECT, "Contact");
//"c" est le nom du paramètre dans la définition de la méthode pushContact
$result = $client->pushContact( new SoapParam($param,"c") );
//la méthode pushContact renvoie un booléen
var_dump($result); |
A tous les coups, je reçois pushContact
Dans le webservice, j'enregistre les erreurs, la voici
Code:
1 2 3
|
La référence d'objet n'est pas définie à une instance d'un objet.
//En anglais = Object reference not set to an instance of an object. |
Après plusieurs recherches, je suis tombé sur le post http://fr.php.net/manual/en/function...call.php#76831, j'ai essayé de le comprendre et de l'appliquer à mon problème mais ça ne marche pas.
j'ai récupéré la dernière requête envoyé au webservice (avec $client->__last_request) et j'obtiens :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://mon.webservice.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Header>
<ns1:CredentialHeader>
<ns1:login>philippe</ns1:login>
<ns1:password>test</ns1:password>
</ns1:CredentialHeader>
</env:Header>
<env:Body>
<ns1:pushContact xsi:type="Contact">
<ns1:firstName>test</ns1:firstName>
<ns1:lastName>test</ns1:lastName>
</ns1:pushContact>
</env:Body>
</env:Envelope> |
Avez-vous déjà été confronté à ce problème ?
Pouvez-vous m'aider à le résoudre ?
grand merci,
Phil-