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

Failed to get operation name from the incoming request

Expand Messages
  • as.aellen
    Hi all When my Perl client calls a WebService over soap it gets following error from the server: Error soapenv:Envelope
    Message 1 of 2 , Nov 5, 2010
    View Source
    • 0 Attachment

      Hi all

      When my Perl client calls a WebService over soap it gets following error from the server:

       

      Error

      soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/><soapenv:Body><soapenv:Fault xmlns:SOAP-ENV="http://schemas.xmlsoap.org/
      soap/envelope/"><faultcode>SOAP-ENV:Client</faultcode><faultstring>Failed to get operation name from the incoming request</faultstring><detail/></soapenv:Fault></soa
      penv:Body></soapenv:Envelope>

      Call

      SOAP::Transport::HTTP::Client::send_receive: HTTP::Request=HASH(0x1dd2554)
      SOAP::Transport::HTTP::Client::send_receive: POST http://138.187.96.39:8299/Processes/NetCracker/OneCRM/ReplicateProductInventory/v01 HTTP/1.1
      Accept: text/xml
      Accept: multipart/*
      Accept: application/soap
      Content-Length: 694
      Content-Type: text/xml; charset=utf-8
      SOAPAction: /Processes/NetCracker/OneCRM/ReplicateProductInventory

      <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:namesp1="http://namespaces.soaplite.com/perl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:
      soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns
      :soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ReplicateProductInventory xmlns="http://www.swisscom.com/onecrm/potree/propagation"><CustomerAccount xs
      i:type="namesp1"><Action>Create</Action><SCN>1111</SCN><Name>TestAA</Name><Type>PO_TestAA</Type><POIID>ALL:SUB:1111AA</POIID></CustomerAccount></ReplicateProductInve
      ntory></soap:Body></soap:Envelope>
      SOAP::Transport::HTTP::Client::send_receive: HTTP::Response=HASH(0x2135bc4)
      SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 500 Internal Server Error

      Perl Code

      #WebService Definition
      #-----------------------------
      my $webService = SOAP::Lite
       -> uri('http://www.swisscom.com/onecrm/potree/propagation')
       -> proxy('http://138.187.96.39:8299/Processes/NetCracker/OneCRM/ReplicateProductInventory/v01')  #Sys2  proxy: URL   (8199 SIRIUS)
       -> on_action(sub{"/Processes/NetCracker/OneCRM/ReplicateProductInventory"}); #Set SoapAction, because it is different to URI


      #WebService Call
      #---------------- 
       

      my $result = $webService-> ReplicateProductInventory(
        SOAP::Data->name("CustomerAccount")->type("")->value(\
         SOAP::Data->name("POInstance")->type("")->value(
          SOAP::Data->name("Action")->type("")->value('Create'),
          SOAP::Data->name("SCN")->type("")->value('1111'),
          SOAP::Data->name("Name")->type("")->value('TestAA'),
          SOAP::Data->name("Type")->type("")->value('PO_TestAA'),
          SOAP::Data->name("POIID")->type("")->value('ALL:SUB:1111AA')
          #SOAP::Data->name("ParentPOIID")->type("")->value('2010-10-14T08:30:00'),
          #SOAP::Data->name("CFSIID")->type("")->value('2010-10-14T08:30:00'))
          )
         )
        );

      I tried also explicitly to set the soapAction, but it didn't help at all.

       

      WSDL

      <?

      xml version="1.0" encoding="UTF-8"?>

      <

      wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.swisscom.com/onecrm/potree/propagation" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns0="http://www.swisscom.com/onecrm/potree/propagation" name="GetObjectState" targetNamespace="http://www.swisscom.com/onecrm/potree/propagation">

      <wsdl:types>

      <

      xs:schema xmlns="http://www.swisscom.com/onecrm/potree/propagation" elementFormDefault="qualified" targetNamespace="http://www.swisscom.com/onecrm/potree/propagation" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">

      <xs:element name="CustomerAccount">

      <xs:complexType>

      <xs:sequence>

      <xs:element maxOccurs="unbounded" name="POInstance">

      <xs:complexType>

      <xs:sequence>

      <xs:element name="Name" type="NonEmptyStringType" />

      <xs:element minOccurs="0" name="Type" type="NonEmptyStringType" />

      <xs:element name="POIID" type="NonEmptyStringType" />

      <xs:element minOccurs="0" maxOccurs="unbounded" name="ParentPOIID" type="NonEmptyStringType" />

      <xs:element minOccurs="0" maxOccurs="unbounded" name="CFSIID" type="NonEmptyStringType" />

      </xs:sequence>

      <xs:attribute name="Action" type="ActionType" use="required" />

      </xs:complexType>

      </xs:element>

      </xs:sequence>

      <xs:attribute name="SCN" type="NonEmptyStringType" use="required" />

      </xs:complexType>

      <xs:key name="POInstanceKey">

      <xs:selector xpath="POInstance" />

      <xs:field xpath="POIID" />

      </xs:key>

      </xs:element>

      <xs:simpleType name="ActionType">

      <xs:restriction base="xs:string">

      <xs:enumeration value="Create" />

      <xs:enumeration value="Update" />

      <xs:enumeration value="Delete" />

      </xs:restriction>

      </xs:simpleType>

      <xs:simpleType name="ResponseType">

      <xs:restriction base="xs:string">

      <xs:enumeration value="Success" />

      <xs:enumeration value="Failure" />

      </xs:restriction>

      </xs:simpleType>

      <xs:simpleType name="NonEmptyStringType">

      <xs:restriction base="xs:string">

      <xs:minLength value="1" />

      </xs:restriction>

      </xs:simpleType>

      <xs:element name="ExceptionDetails">

      <xs:complexType>

      <xs:sequence>

      <xs:element name="Type" type="xs:string" />

      <xs:element name="Message" type="xs:string" />

      <xs:element minOccurs="0" name="Details" type="xs:string" />

      </xs:sequence>

      </xs:complexType>

      </xs:element>

      <xs:element name="CustomerAccountResponse">


      (Message over 64 KB, truncated)
    • Martin Busik
      Hi, ... It is allways good to have a working example :-) ... Please note: according to the working SoapUI example, the webservice method you are calling is
      Message 2 of 2 , Nov 5, 2010
      View Source
      • 0 Attachment
        Hi,

        > Call that works out of SoapUI
        >
        > <soapenv:Envelope
        > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
        > xmlns:prop="http://www.swisscom.com/onecrm/potree/propagation">
        > <soapenv:Header/>
        > <soapenv:Body>
        > <prop:CustomerAccount SCN="1111"
        > xmlns:prop="http://www.swisscom.com/onecrm/potree/propagation">
        > <prop:POInstance Action="Update">
        > <prop:Name>Test Access Product</prop:Name>
        > <prop:Type>PO_TESTACCESS_PRODUCT</prop:Type>
        > <prop:POIID>0111A</prop:POIID>
        > <prop:ParentPOIID>ALL:SUB:91610111</prop:ParentPOIID>
        > <prop:CFSIID>AC0.123.456.71</prop:CFSIID>
        > </prop:POInstance>
        > </prop:CustomerAccount>
        > </soapenv:Body>
        > </soapenv:Envelope>

        It is allways good to have a working example :-)

        > Perl Code
        >
        > #WebService Definition
        > #-----------------------------
        > my $webService = SOAP::Lite
        > -> uri('http://www.swisscom.com/onecrm/potree/propagation')
        > ->
        > proxy('http://138.187.96.39:8299/Processes/NetCracker/OneCRM/R
        > eplicateProductInventory/v01') #Sys2 proxy: URL (8199 SIRIUS)
        > ->
        > on_action(sub{"/Processes/NetCracker/OneCRM/ReplicateProductIn
        > ventory"}); #Set SoapAction, because it is different to URI
        >
        >
        > #WebService Call
        > #----------------
        >
        >
        > my $result = $webService-> ReplicateProductInventory(
        > SOAP::Data->name("CustomerAccount")->type("")->value(\
        > SOAP::Data->name("POInstance")->type("")->value(
        > SOAP::Data->name("Action")->type("")->value('Create'),
        > SOAP::Data->name("SCN")->type("")->value('1111'),
        > SOAP::Data->name("Name")->type("")->value('TestAA'),
        > SOAP::Data->name("Type")->type("")->value('PO_TestAA'),
        > SOAP::Data->name("POIID")->type("")->value('ALL:SUB:1111AA')
        >
        > #SOAP::Data->name("ParentPOIID")->type("")->value('2010-10-14T
        > 08:30:00'),
        >
        > #SOAP::Data->name("CFSIID")->type("")->value('2010-10-14T08:30:00'))
        > )
        > )
        > );

        Please note: according to the working SoapUI example, the webservice
        "method" you are calling
        is "CustomerAccount". According to your wsdl it should be
        "ReplicateProductInventory".
        One of them is wrong. Which one?

        If you try to create a perl request which contains the same as the working
        SoapUI example, you might
        write:

        $webService->CustomerAccount(...) or $webService->call("CustomerAccount")

        Cheers,
        Martin
      Your message has been successfully submitted and would be delivered to recipients shortly.