2010-06-29 23 views
0

我正在嘗試使用SOAP :: Lite在Perl中編寫客戶端應用程序。我想調用一個特定的函數,但我似乎無法得到正確的參數。我不斷收到回覆說:「在SOAP信封中發現的元素超出了WSDL的要求」,但除此之外沒有更多信息。使用SOAP :: Lite的遠程函數調用

SOAP :: Lite有沒有什麼方法可以直接找出遠程過程調用所需的參數?

謝謝。

回答

1

我通過閱讀WSDL並傾銷SOAP::Lite對象的組合導航,因爲我可以製造它們。

以下是我能夠從SOAP::Lite中獲得回報的方式。請記住,我正在通過避免SOAP::Schema::load調用來解決SOAP::Lite中的一些錯誤,並避免SL在WSDL中不喜歡WSDL中定義的多個服務,它會嘲笑你。

use strict; 
use warnings; 
use Data::Dumper qw<Dumper>; 
use SOAP::Lite; # trace => 'all'; # <- trace can help 

my $schema = SOAP::Schema->new(schema_url => $destination_URL)->parse(); 
my $services = $schema->services(); 
my $defintion; 
foreach my $service (values %$services) { 
    $definition = $service->{$method_name}; 
} 

print Dumper($definition); 

上面沒有定義的大部分變量都是你必須提供的東西。