0

我正在尝试使用 SOAP::Lite 在 Perl 中编写客户端应用程序。我正在尝试调用特定函数,但似乎无法正确获取参数。我不断收到回复说“在soap 信封中找到了比WSDL 要求的更多的元素”,但除此之外没有更多信息。

SOAP::Lite 中有什么方法可以直接找出远程过程调用所需的参数吗?

谢谢你。

4

1 回答 1

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 );

上面未定义的大多数变量都是您必须提供的东西。

于 2010-06-29T21:37:15.967 回答