Centos 5 | Perl 5.10.0 | SOAP :: Lite 1.20
阅读了使用on_fault作为SOAP :: Lite的默认错误处理的覆盖的文档,我希望以下代码使用回调来进行错误处理。但是,我看到的是正在使用的默认值
#!/usr/bin/perl
use strict;
use SOAP::Lite;
my $log #calls to Log4Perl
my $soapServer = "http://somelocation/services/GdeWsOpenAPI?wsdl"
my $soap = new SOAP::Lite();
$soap->on_fault( \&soapError );
$soap->service($soapServer);
sub soapError {
my($soap, $res) = @_;
my $message = ref $res ? $res->faultstring : $soap->transport->status;
$log->write( "fatal connection error to server $SoapServer: $message.", 0);
print STDERR "connection error: $message\n";
exit 1;
}
输出是: 无法加载服务说明“http://somelocation/services/GdeWsOpenAPI?wsdl”:500无法连接到某个位置:80
预期(因运输错误): 连接错误:无法加载服务描述“http://somelocation/services/GdeWsOpenAPI?wsdl”:500无法连接到某个位置:80
我错过了什么?
答案 0 :(得分:0)
回调是针对进行SOAP调用时出现的问题。你没有那么远。
p_ename, p_ecmpy
答案 1 :(得分:-1)
故障是来自服务器的一种特殊类型的响应,表示您的请求出了问题"。在那里发生的事情没有错,它根本没有连接到服务器。你可能想要使用Try :: Tiny。