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

RE: [soaplite] debugging servers appears to be blind

Expand Messages
  • fulkohew <fulkohew@yahoo.com>
    ... I will investigate this further. My client does have a handler which I presumed would emit something if it were being called. From the sample code, I
    Message 1 of 4 , Feb 11, 2003
    • 0 Attachment
      Keanan Smith <KSmith@n...> and quinn@... replied:

      > Any 'Die' Statements which happen *in dispatched code* get caught
      > Via eval and $@) and passed back to the client as a faultstring,

      I will investigate this further. My client does have a handler
      which I presumed would emit something if it were being called.
      From the sample code, I have:

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

      But this apparently catches SOAP issues, not server side application
      issues.

      > Any Compile time error statements happen normally (Ie. get sent
      > to the console of the server, or STDERR, more accurately, (I
      > personally redirect this to a log, it's nice for debugging
      > that way.))
      >
      > Any 'warnings' also go to STDERR, as normal (see above :)

      As I would have expected to see too.

      > Any system-type errors go into the appropriate system error
      > variable,as per-normal (For instance $! and $^E for OS specific
      > stuff)

      Hmmm.

      > On the *client* side, everything should happen normally.

      Well, because there is a server side error, the client can't
      invoke the remote method. ie. it doesn't exist. And in Perl
      tradition, missing functions are silently ignored, so the client
      side is always quiet.

      > So I have to assume if you aren't seeing your error messages,
      > 1 of 3 things is true:
      >
      > 1. You're executing code in an eval yourself, and not checking $@,

      Nope, not knowingly.

      > 2. You're 'dying' out of executed (dispatched) code server-side,
      > but the client isn't checking the faultstring.

      I'll check that. (see code snippet above.)

      > 3. You're experiencing server-side compile-time errors (or
      > warnings), but don't have a console for the errors to appear in.

      If it wern't for the fact that I do have a console, thats what I
      would say was happening.

      > another solution to catch compile-time errors is to run
      > 'perl -c YourModule.pm' on the command line before trying
      > to access the service via SOAP.

      This will catch my bugs! Thanks. I'll make a makefile that runs
      perl -c first, on all of my modules and barfs if neccessary first
      before running the server.
    Your message has been successfully submitted and would be delivered to recipients shortly.