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

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

Expand Messages
  • Paul Kulchenko
    ... - on_fault(sub { my($soap, $res) = @_; die ref $res ? $res- faultstring : $soap- transport- status, n ; }) ... ; Paul.
    Message 1 of 7 , Jun 7, 2004
    • 0 Attachment
      on_fault should be called BEFORE ->result():

      > $soap_response= SOAP::Lite
      > -> uri('<URI of the service>')
      > -> proxy('http://address_here')
      -> on_fault(sub { my($soap, $res) = @_;
      die ref $res ? $res->faultstring :
      $soap->transport->status, "\n";
      })
      > -> methodName()
      > -> result
      ;

      Paul.

      --- "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/
      >
      >
      > ------------------------ Yahoo! Groups Sponsor
      > --------------------~-->
      > Yahoo! Domains - Claim yours for only $14.70
      > http://us.click.yahoo.com/Z1wmxD/DREIAA/yQLSAA/W6uqlB/TM
      >
      --------------------------------------------------------------------~->
      >
      >
      >
      > Yahoo! Groups Links
      >
      >
      >
      >
      >
    • Chen, Li Ye (Research)
      Thanks Paul! That works. :-) ... From: Paul Kulchenko [mailto:paulclinger@yahoo.com] Sent: Monday, June 07, 2004 3:26 PM To: Chen, Li Ye (Research); YU Fan ;
      Message 2 of 7 , Jun 9, 2004
      • 0 Attachment
        Thanks Paul! That works. :-)

        -----Original Message-----
        From: Paul Kulchenko [mailto:paulclinger@...]
        Sent: Monday, June 07, 2004 3:26 PM
        To: Chen, Li Ye (Research); 'YU Fan'; Mitchell, Louise M;
        soaplite@yahoogroups.com
        Subject: RE: [soaplite] Quick question -- Simple Fault handling



        on_fault should be called BEFORE ->result():

        > $soap_response= SOAP::Lite
        > -> uri('<URI of the service>')
        > -> proxy('http://address_here')
        -> on_fault(sub { my($soap, $res) = @_;
        die ref $res ? $res->faultstring :
        $soap->transport->status, "\n";
        })
        > -> methodName()
        > -> result
        ;

        Paul.

        --- "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/
        >
        >
        > ------------------------ Yahoo! Groups Sponsor
        > --------------------~-->
        > Yahoo! Domains - Claim yours for only $14.70
        > http://us.click.yahoo.com/Z1wmxD/DREIAA/yQLSAA/W6uqlB/TM
        >
        --------------------------------------------------------------------~->
        >
        >
        >
        > Yahoo! Groups Links
        >
        >
        >
        >
        >
      Your message has been successfully submitted and would be delivered to recipients shortly.