我在嘗試處理SOAP錯誤時遇到了問題,我無法弄清楚它是否在我的末端或另一端。XML ::編譯:: SOAP和錯誤調用
我使用一個WSDL文件,我有以下代碼:
use XML::Compile::WSDL11;
use XML::Compile::SOAP11;
use XML::Compile::Transport::SOAPHTTP;
my $wsdlXml = XML::LibXML->new->parse_file("pathtowsdl");
my $wsdl = XML::Compile::WSDL11->new($wsdlXml);
my $call = $wsdl->compileClient('Add');
my %param = ('param1' => 'xxx',
'param2' => 'xxxx',
'param3' => 'xxxx',
'Name' => {
'first' => 'xxx',
'last' => 'xxx',
});
my ($response, $trace) = $call->(\%param);
如果我打電話,利用正確的PARAMS然後一切正常,你會想,如果$響應具有哈希REF結果我在找。
但是,如果我導致錯誤,那麼我什麼都不會回來。 $響應沒有任何內容(每個Data :: Dumper)。
事情是,$ trace是否有肥皂信封在那裏。肥皂信封在成功和失敗/故障中都有$追蹤,但只有在成功時纔會有$響應中的某些信息,失敗時信封中的「faultType」和「faultData」應該位於$響應中。
我做錯了什麼?從我讀過的所有內容來看,這聽起來像我不應該做任何不同的事情,在出現故障的情況下,我們應該有類似$ response - > {'fault'}的東西,但就像我說的那樣,$ response是空的。
任何想法,我應該尋找什麼?
TIA!
謝謝,這是一個非常酷的程序。它似乎看到了錯誤,所以我不知道XML :: Compile發生了什麼 – Analog