Loading ...
Sorry, an error occurred while loading the content.

3648RE: [soaplite] Quick question -- Simple Fault handling

Expand Messages
  • YU Fan
    Jun 7, 2004
    • 0 Attachment
      According to sopalite.com: By default client will die
      with diagnostic on transport errors and do nothing for
      faulted calls, so, you'll be able to get fault info
      from result. You can alter this behavior with
      on_fault() handler either per object (will die on both
      transport errors and SOAP faults).

      You may want to check
      http://guide.soaplite.com/#error%20handling for detail
      on "on_fault" and its different usages.

      -Yu

      --- "Chen, Li Ye (Research)" <chenl@...>
      wrote:
      > Hmm...I've tried the code below as well, but it
      > turns out that the compiler
      > does't like it:
      >
      > "Can't call method "on_fault" on unblessed reference
      > at perl_client_fault.pl
      > line
      > 19."
      >
      > Is on_fault an actual method under SOAP::Lite
      > module?
      >
      > Thanks!
      >
      > -----Original Message-----
      > From: YU Fan [mailto:fanyu_ca@...]
      > Sent: Saturday, June 05, 2004 9:24 PM
      > To: Mitchell, Louise M; chenlyc7;
      > soaplite@yahoogroups.com
      > Subject: RE: [soaplite] Quick question -- Simple
      > Fault handling
      >
      >
      > A simpler way:
      >
      > $soap_response= SOAP::Lite
      > -> uri('<URI of the service>')
      > -> proxy('http://address_here')
      > -> methodName()
      > -> result
      > -> on_fault(sub { my($soap, $res) = @_;
      > die ref $res ? $res->faultstring :
      > $soap->transport->status, "\n";
      > });
      >
      >
      > -Yu
      >
      >
      > --- "Mitchell, Louise M" <Louise.Mitchell@...>
      > wrote:
      > > if ($response->fault)
      > > {
      > > die $response->faultstring;
      > > }
      > > else
      > > {
      > > my $result = $response->result;
      > > return $result;
      > > #my %result = %{$response->result};
      > > #print map("$_: @{[$result{$_} || '']}\n",
      > keys
      > > %result), "\n";
      > > }
      > >
      > > -----Original Message-----
      > > From: chenlyc7 [mailto:chenl@...]
      > > Sent: Friday, June 04, 2004 11:08 AM
      > > To: soaplite@yahoogroups.com
      > > Subject: [soaplite] Quick question -- Simple Fault
      > > handling
      > >
      > >
      > > Hi,
      > > I'm trying to get our perl client to handle a
      > > very simple Fault
      > > message from the server that has the following
      > > format:
      > >
      > >
      > > <?xml version="1.0" encoding="UTF-8"?>
      > > <soapenv:Envelope
      > >
      >
      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
      > > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      > >
      >
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      > > <soapenv:Body>
      > > <soapenv:Fault>
      > >
      > >
      >
      <faultcode>soapenv:Server.generalException</faultcode>
      > > <faultstring>A sample fault message
      > > here...</faultstring>
      > > <detail>
      > > <string>A sample fault message
      > here...</string>
      > > </detail>
      > > </soapenv:Fault>
      > > </soapenv:Body>
      > > </soapenv:Envelope>
      > >
      > > how would one be able to retrieve the strings in
      > > faultstring and detail
      > > tags if the hypothetical client had the following
      > > code:
      > >
      > > $soap_response= SOAP::Lite
      > > -> uri('<URI of the service>')
      > > -> proxy('http://address_here')
      > > -> methodName(SOAP::Data->name(arg0 =>
      > > \@arg0stuff),
      > > SOAP::Data->name(arg1 => \@arg1stuff),
      > > SOAP::Data->name(arg2
      > > =>\@arg2stuff))
      > > -> result;
      > >
      > > ? I am new to this and would like to quickly setup
      > > an example for perl
      > > to handle simple faults as described above.
      > >
      > > Thanks in advance!
      > >
      > >
      > >
      > >
      > >
      > > Yahoo! Groups Links
      > >
      > >
      > >
      > >
      > >
      > >
      >
      >
      >
      >
      >
      > __________________________________
      > Do you Yahoo!?
      > Friends. Fun. Try the all-new Yahoo! Messenger.
      > http://messenger.yahoo.com/
      >





      __________________________________
      Do you Yahoo!?
      Friends. Fun. Try the all-new Yahoo! Messenger.
      http://messenger.yahoo.com/
    • Show all 7 messages in this topic