Покажите, пожалуйста, пальцем, где у меня ошибка в ДНК. Или не у меня, а в SOAP::Lite.
А то я уже голову сломал.
Дано: простейший тестовый скрипт о пяти строчках.
Во всех инструкциях написано, что вызов метода, даже неудачный, должен вернуть ссылку на SOAP::SOM, после чего можно по ней получать всякие fault, result и paramsout.
Авотфиг. Вызов проходит, я в дампе вижу, что сервер понял запрос и вернул корректный XML. А в $r возвращается скалярная единица.
Аналогичная фигня с попыткой передать в вызываемый метод ссылки на SOAP::Data, как показано в документации. Оно говорит String value expected instead of SOAP::Data reference.
А $service->call('Version') говорит, что "A service address has not been specified either by using SOAP::Lite->proxy() or a service description)", хотя в вышеуказанном явном вызове $service->Version() адрес прокси замечательно обнаруживается.
Сдаётся мне, что я не замечаю каких-то больших граблей, но каких?
P.S. libsoap-lite-perl 0.69-1 в убунте, если что.
А то я уже голову сломал.
Дано: простейший тестовый скрипт о пяти строчках.
#!/usr/bin/perl -w
use SOAP::Lite +trace => "debug";
my $service = SOAP::Lite
-> service('http://...');
$service->envprefix('SOAP-ENV');
my $r = $service->Version();Во всех инструкциях написано, что вызов метода, даже неудачный, должен вернуть ссылку на SOAP::SOM, после чего можно по ней получать всякие fault, result и paramsout.
Авотфиг. Вызов проходит, я в дампе вижу, что сервер понял запрос и вернул корректный XML. А в $r возвращается скалярная единица.
Аналогичная фигня с попыткой передать в вызываемый метод ссылки на SOAP::Data, как показано в документации. Оно говорит String value expected instead of SOAP::Data reference.
А $service->call('Version') говорит, что "A service address has not been specified either by using SOAP::Lite->proxy() or a service description)", хотя в вышеуказанном явном вызове $service->Version() адрес прокси замечательно обнаруживается.
Сдаётся мне, что я не замечаю каких-то больших граблей, но каких?
P.S. libsoap-lite-perl 0.69-1 в убунте, если что.