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

Newbie problem: Server did not recognize the value of HTTP Header SOAPAction

Expand Messages
  • dcaffey_fl
    Dear SOAP::Lite Group, I m a newbie to SOAP and have a question that I ve scoured all the docs I can find for an answer to no avail; maybe one of you can tell
    Message 1 of 2 , Oct 6, 2003
    • 0 Attachment
      Dear SOAP::Lite Group,

      I'm a newbie to SOAP and have a question that I've scoured all
      the docs I can find for an answer to no avail; maybe one of you can
      tell me where I've gone wrong. Here's the scenario: I've written a
      simple stub webservice on MSWin2K and can call the "Transact()"
      method in the webservice using IE without problems using the URL
      of "http://localhost/AECSpiDr/AECSpiDr.asmx/Transact". I then try to
      call the same method from a PERL script on a UNIX box and get the
      following error:

      "SOAP Fault occurred:
      Code = soap:Client
      String = Server did not recognize the value of HTTP Header
      SOAPAction: http://10.243.37.59/AECSpiDr/AECSpiDr.asmx#Transact.
      ".

      Notice the '#' char in the error message just preceeding
      the "Transact" method name in the SOAPAction. This looks a little
      fishy; maybe it should be a '/' char? How would I get it to change?

      Here's the code for the UNIX PERL client that I wrote that's emitting
      the error message:

      #!/bin/perl -w

      # Test client to verify communications with AECSpiDr webservice.

      use SOAP::Lite;

      #$ENV{HTTP_proxy} = "http://proxy.myCompany.com:8080/"; # doesn't
      work and complains of undefined value in HTTP.pm.

      my $soap = SOAP::Lite
      -> uri('http://10.243.37.59/AECSpiDr/AECSpiDr.asmx') # class -
      not working
      #-> uri('http://10.243.37.59/AECSpiDr') # class - not working
      -> proxy('http://10.243.37.59/AECSpiDr/AECSpiDr.asmx'); # service
      that provides access to class

      # calling method in webservice class
      my $result = $soap->Transact();

      if($result->fault)
      {
      print "\nSOAP Fault occurred:" .
      "\n\tCode = " . $result->faultcode .
      "\n\tString = " . $result->faultstring .
      #"\n\tActor = " . $result-faultactor .
      #"\n\tDetail = " . $result-faultdetail .
      "\n";
      } else {
      print "\nCall result is \"" . $result->result() . "\".";
      }

      print "\n";

      # end of file.

      The request from the UNIX PERL script is showing up in the IIS
      Webserver log as follows:
      "2003-10-06 21:40:10 10.243.32.101 - W3SVC1 AEC2DTXQ11 10.243.37.59
      80 POST /AECSpiDr/AECSpiDr.asmx - 500 HTTP/1.0 SOAP::Lite/Perl/0.55".


      Thanks in advance for any help that's given.

      Sincerely,

      Dom
    • Byrne Reese
      The trick is to use the on_action subroutine that belongs to your SOAP::Lite client object. http://cookbook.soaplite.com/#customizing%20soapaction%20header ...
      Message 2 of 2 , Oct 6, 2003
      • 0 Attachment
        The trick is to use the on_action subroutine that belongs to your
        SOAP::Lite client object.

        http://cookbook.soaplite.com/#customizing%20soapaction%20header

        > Dear SOAP::Lite Group,
        >
        > I'm a newbie to SOAP and have a question that I've scoured all
        > the docs I can find for an answer to no avail; maybe one of you can
        > tell me where I've gone wrong. Here's the scenario: I've written a
        > simple stub webservice on MSWin2K and can call the "Transact()"
        > method in the webservice using IE without problems using the URL
        > of "http://localhost/AECSpiDr/AECSpiDr.asmx/Transact". I then
        > try to
        > call the same method from a PERL script on a UNIX box and get the
        > following error:
        >
        > "SOAP Fault occurred:
        > Code = soap:Client
        > String = Server did not recognize the value of HTTP Header
        > SOAPAction: http://10.243.37.59/AECSpiDr/AECSpiDr.asmx#Transact.
        > ".
        >
        > Notice the '#' char in the error message just preceeding
        > the "Transact" method name in the SOAPAction. This looks a
        > little
        > fishy; maybe it should be a '/' char? How would I get it to change?
        >
        > Here's the code for the UNIX PERL client that I wrote that's emitting
        > the error message:
        >
        > #!/bin/perl -w
        >
        > # Test client to verify communications with AECSpiDr webservice.
        >
        > use SOAP::Lite;
        >
        > #$ENV{HTTP_proxy} = "http://proxy.myCompany.com:8080/"; #
        > doesn't
        > work and complains of undefined value in HTTP.pm.
        >
        > my $soap = SOAP::Lite
        > -http://10.243.37.59/AECSpiDr/AECSpiDr.asmx') # class -
        > not working
        > #-http://10.243.37.59/AECSpiDr') # class - not working
        > -http://10.243.37.59/AECSpiDr/AECSpiDr.asmx'); # service
        > that provides access to class
        >
        > # calling method in webservice class
        > my $result = $soap-
        >
        > if($result-
        > {
        > print "\nSOAP Fault occurred:" .
        > "\n\tCode = " . $result-
        > "\n\tString = " . $result-
        > #"\n\tActor = " . $result-faultactor .
        > #"\n\tDetail = " . $result-faultdetail .
        > "\n";
        > } else {
        > print "\nCall result is \"" . $result-
        > }
        >
        > print "\n";
        >
        > # end of file.
        >
        > The request from the UNIX PERL script is showing up in the IIS
        > Webserver log as follows:
        > "2003-10-06 21:40:10 10.243.32.101 - W3SVC1 AEC2DTXQ11 10.243.37.59
        > 80 POST /AECSpiDr/AECSpiDr.asmx - 500 HTTP/1.0 SOAP::Lite/Perl/0.55".
        >
        >
        > Thanks in advance for any help that's given.
        >
        > Sincerely,
        >
        > Dom
        >
        >
        >
        >
        >
        >
        >
        >
        >
        >
        > Yahoo! Groups Sponsor
        >
        >
        > ADVERTISEMENT
        >
        >
        >
        >
        >
        >
        >
        >
        >
        > To unsubscribe from this group, send an email to:
        > soaplite-unsubscribe@yahoogroups.com
        >
        >
        >
        >
        >
        > Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
        >
        >
        >
        >
        >


        ^byrne :/
      Your message has been successfully submitted and would be delivered to recipients shortly.