使用SOAP :: Lite进行远程函数调用

时间:2010-06-29 18:26:03

标签: perl soap soaplite

我正在尝试使用SOAP :: Lite在Perl中编写客户端应用程序。我试图调用一个特定的函数,但我似乎无法正确获取参数。我不断收到回复说“发现肥皂封套中的元素多于WSDL所需的元素”,但除此之外没有其他信息。

在SOAP :: Lite中有没有办法直接找出远程过程调用所需的参数?

谢谢。

1 个答案:

答案 0 :(得分:1)

我通过读取WSDL和转储SOAP::Lite对象的组合进行导航,因为我可以制作它们。

以下是我能够从SOAP::Lite中选择回报的方式。请记住,我正在通过避免SOAP::Lite调用来解决SOAP::Schema::load中的一些错误,并避免SL不喜欢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 );

以上未定义的大多数变量都是您必须提供的内容。