Bonjour,

Je code actuellement un client webservice via SOAP::Lite. Il y a un truc que j'ai pas du bien saisir. Les 2extraits de code ci-dessous font la meme chose, les paramètres sont les memes, etc .. . Cependant j'obtiens un comportement différent.
Dans le cas1 tout fonctionne.
Dans le cas2, lorsque j'essaye d'appeler une méthode de mon webservice, j'obtiens une erreur 500, vu la stack trace, c'est parce que la version de soap utilisée à la création de l'enveloppe est 1.1 et non 1.2 comme spécifié au constructeur.

Quelqu'un saurait-il m'expliquer pourquoi je n'ai pas le meme comportement? Qu'est-ce que j'ai loupé?

Merci

Code cas1 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$this->{"transport"} =  SOAP::Lite
		-> soapversion('1.2')
		-> serializer(Serializer->new())
		-> default_ns('http://lebonnamespace/admin/user/types-1.0')
		->proxy('http://'.$this->{"host"}.':80/'.$api,
			 'credentials' => [
				$this->{"host"}.':80',
				$api.'-api',
				$this->{"login"} => $this->{"pass"},
			 ])
		-> autotype(0)
		->readable(1);
Code cas2 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
$this->{"transport"} =  SOAP::Lite->new(
		soapversion => '1.2',
		serializer => Serializer->new(),
		default_ns => 'http://lebonnamespace/admin/user/types-1.0',
		autotype => 0,
		readable => 1
	);
	$this->{"transport"}->proxy('http://'.$this->{"host"}.':80/'.$api,
				 'credentials' => [
					$this->{"host"}.':80',
					$api.'-api',
					$this->{"login"} => $this->{"pass"},
			 ]);