Вие задавате
proxy
до крайната точка и
uri
(или в най-новата версия ns
) към пространството от имена в дефиницията на метода.
Един от най-лесните начини да направите това е просто да използвате WSDL URI и да създадете SOAP::Schema
обект с него, така:
my $schema = SOAP::Schema->new( schema_url => $destination_URL )->parse();
my $services = $schema->services();
И зарежете тези два предмета.
Можете да потърсите
my $method_def = $service->{ $method_name };
my $uri = $method_def->{namespace};
my $proxy = $method_def->{endpoint}->value();
И използвайте тези стойности, ако всичко е там.
Трябваше да ровя в много SOAP::Lite дъмпове, за да накарам SOAP клиентската си архитектура да работи. Трябва да знаете как да дебъгвате и изхвърляте Perl обекти, ако искате да изстреляте всичките си проблеми.
Ще ви покажа анонимизиран дъмп на услуга:
$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 => [ ... ]
...
}
}
};
person
Axeman
schedule
07.04.2011