Beefy Boxes and Bandwidth Generously Provided by pair Networks RobOMonk
P is for Practical
 
PerlMonks  

Graceful error handling in SOAP

by jpfarmer (Pilgrim)
on Dec 19, 2005 at 11:26 UTC ( [id://517786]=perlquestion: print w/replies, xml ) Need Help??

This is an archived low-energy page for bots and other anonmyous visitors. Please sign up if you are a human and want to interact.

jpfarmer has asked for the wisdom of the Perl Monks concerning the following question:

I am making use of several SOAP calls in one of our applications. However, I'm running into a problem gracefully trapping errors. We connect to the SOAP service using a call like this:

use SOAP::Lite service => 'https://someserver.com/wsdl/Method.wsdl', on_fault => sub { print Dumper(@_), "\n"; exit; };

The code works correctly, but the fault handling is ugly. Dumper returns a ton of information and I only need a bit of it (the faultcode and fault string), but I can't figure out how to get to it. If I just print @_ directly, I get the following object reference: SOAP::Lite=HASH(0xa341f00)

Most of the relevant pages I can find on the web deal with cases where the function call itself fails, but I can't find any examples on how to handle the error when the proxy setup fails.

Any help would be greatly appreciated.

Replies are listed 'Best First'.
Re: Graceful error handling in SOAP
by jhourcle (Prior) on Dec 19, 2005 at 12:12 UTC

    It's described in the SOAP::Lite guide.

    In the example given:

    -> on_fault(sub { my($soap, $res) = @_; die ref $res ? $res->faultstring : $soap->transport->status, +"\n"; })

    It'll die with the faultstring if there's an SOAP fault, or with the transport status if there wasn't a result object. (and in the case of a failed connection, it'll be a transport error, with no result object.)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://517786]
Approved by Corion
help
Sections?
Information?
Find Nodes?
Leftovers?
    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.