Vous définissez
- le
proxy
au point d'extrémité et
- le
uri
(ou version la plus récente ns
) à l'espace de noms dans la définition de la méthode.
Une des façons les plus faciles à faire est simplement d'utiliser l'URI WSDL et créer un objet SOAP::Schema
avec elle, comme ceci:
my $schema = SOAP::Schema->new(schema_url => $destination_URL)->parse();
my $services = $schema->services();
Et vider ces deux objets.
Vous pouvez chercher
my $method_def = $service->{ $method_name };
my $uri = $method_def->{namespace};
my $proxy = $method_def->{endpoint}->value();
Et utiliser ces valeurs, si tout est là.
J'ai dû parcourir un grand nombre de dumps SOAP :: Lite afin de faire fonctionner mon architecture client SOAP. Vous devriez savoir comment déboguer et vider les objets Perl si vous voulez tirer tous vos problèmes.
Je vais vous montrer une décharge anonymisées d'un service:
$services = {
ServiceName => {
MethodName => {
endpoint => bless({
_attr => {},
_name => 'location',
_signature => [],
_value => [
# v-- This value you pass to SOAP::Lite->proxy
'http://some.domain.com/WebServices/SOAPEndpoint.asmx'
]
}, 'SOAP::Custom::XML::Data'
),
# v-- This value you pass to uri/default_ns/ns
namespace => 'http://some.domain.com/',
parameters => [ ... ]
...
}
}
};
bon sang pour écrire une grande réponse à une question terrible! maintenant je ne peux pas le supprimer: P –