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

Empty Result Returned in SOAP::Lite but not soapUI GUI using same request

Expand Messages
  • dbower01
    Dear Group, I ve been encountering an issue with a particular result being returned empty from a webservice through SOAP::Lite but using the same exact request
    Message 1 of 5 , Mar 17, 2010
    View Source
    • 0 Attachment
      Dear Group,

      I've been encountering an issue with a particular result being returned empty from a webservice through SOAP::Lite but using the same exact request that is being sent from SOAP::Lite (copy and pasted from the +trace ouput) in the free soapUI client I actually receive the expected result. I am successfully using other methods of this webservice without any issues.

      Any insight into why this is occurring would be greatly appreciated. I've already started digging into the source code but thought I would post this and see if any responds...

      I believe I've included enough information below regarding the wsdl, the request and the different responses from both SOAP::Lite and soapUI.

      Sincerely,
      Dave

      ---------- WSDL SNIPPET ----------

      <!--
      Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.7-b01-.
      -->
      <!--
      Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.7-b01-.
      -->
      <definitions targetNamespace="http://zzz.com" name="StructureSearchToolkitService">
      <types>
      <xsd:schema>
      <xsd:import namespace="http://zzz.com" schemaLocation="http://bigbird:8086/services/StructureSearchToolkit?xsd=1"/>
      </xsd:schema>
      </types>

      <message name="getLastSearchResult">
      <part name="parameters" element="tns:getLastSearchResult"/>
      </message>
      <message name="getLastSearchResultResponse">
      <part name="parameters" element="tns:getLastSearchResultResponse"/>
      </message>

      <portType name="StructureSearchToolkit">
      <operation name="getLastSearchResult">
      <input message="tns:getLastSearchResult"/>
      <output message="tns:getLastSearchResultResponse"/>
      </operation>
      </portType>

      <binding name="StructureSearchToolkitPortBinding" type="tns:StructureSearchToolkit">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
      <operation name="getLastSearchResult">
      <soap:operation soapAction="urn:GetLastSearchResult"/>
      <input>
      <soap:body use="literal"/>
      </input>
      <output>
      <soap:body use="literal"/>
      </output>
      </operation>
      </binding>

      <service name="StructureSearchToolkitService">
      <port name="StructureSearchToolkitPort" binding="tns:StructureSearchToolkitPortBinding">
      <soap:address location="http://bigbird:8086/services/StructureSearchToolkit"/>
      </port>
      </service>
      </definitions>

      ---------- The request object generated by SOAP::Lite ----------
      <soap:Envelope
      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/"
      xmlns:my="http://zzz.com">
      <soap:Header>
      <my:lseSessionId>126</my:lseSessionId>
      </soap:Header>
      <soap:Body>
      <my:getLastSearchResult xsi:nil="true" />
      </soap:Body>
      </soap:Envelope>

      ---------- The response received by SOAP::Lite ----------
      <?xml version='1.0' encoding='UTF-8'?>
      <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
      <S:Body>
      <ns2:getLastSearchResultResponse xmlns:ns2="http://zzz.com"/>
      </S:Body>
      </S:Envelope>

      ---------- The response received by soapUI ----------
      <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
      <S:Body>
      <ns2:getLastSearchResultResponse xmlns:ns2="http://zzz.com">
      <structureSearchResultElements>
      <similarityScore>0.0</similarityScore>
      <structureId>31979</structureId>
      <structureName>LS-11</structureName>
      </structureSearchResultElements>
      <structureSearchResultElements>
      <similarityScore>0.0</similarityScore>
      <structureId>118732</structureId>
      <structureName>LS-64</structureName>
      </structureSearchResultElements>
      </ns2:getLastSearchResultResponse>
      </S:Body>
      </S:Envelope>
    • Martin Busik
      Hi, I suppose, there goes something wrong with your lseSessionId. Have you started a query in your perl code? do you use the same lseSessionID in both
      Message 2 of 5 , Mar 17, 2010
      View Source
      • 0 Attachment
        Hi,
        I suppose, there goes something wrong with your lseSessionId.

        Have you started a query in your perl code? do you use the same
        lseSessionID in both requests?

        Cheers,
        Martin

        > ---------- The request object generated by SOAP::Lite ----------
        > <soap:Envelope
        > 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/"
        > xmlns:my="http://zzz.com">
        > <soap:Header>
        > <my:lseSessionId>126</my:lseSessionId>
        > </soap:Header>
        > <soap:Body>
        > <my:getLastSearchResult xsi:nil="true" />
        > </soap:Body>
        > </soap:Envelope>
      • dbower01
        Hi Martin, Thanks for the reply, I m certain that the lseSessionID portion is definitely working correctly because there are several steps prior to the final
        Message 3 of 5 , Mar 17, 2010
        View Source
        • 0 Attachment
          Hi Martin,

          Thanks for the reply, I'm certain that the lseSessionID portion is definitely working correctly because there are several steps prior to the final one listed here that all work correctly with the lseSessionID. The same lseSessionID is persisted through all webservice requests until it is explicitly released by the client.

          Something of interest though is that I trapped some of the http header information and SOAP::Lite is sending this:

          POST /services/StructureSearchToolkit HTTP/1.1
          TE: deflate,gzip;q=0.3
          Connection: TE, close
          Accept: text/xml
          Accept: multipart/*
          Accept: application/soap
          Host: bigbird:8086
          User-Agent: SOAP::Lite/Perl/0.710.10
          Content-Length: 607
          Content-Type: text/xml; charset=utf-8
          SOAPAction: "http://zzz.com#getLastSearchResult"

          Whereas soapUI is sending this:

          POST /services/StructureSearchToolkit HTTP/1.1
          Accept-Encoding: gzip,deflate
          Content-Type: text/xml;charset=UTF-8
          SOAPAction: "urn:GetLastSearchResult"
          User-Agent: Jakarta Commons-HttpClient/3.1
          Host: bigbird:8086
          Content-Length: 555

          When I check the Response Headers in soapUI I see:

          Transfer-Encoding: chunked
          Content-Type: text/xml; charset=utf-8
          Server: Jetty(6.1.6)
          status: HTTP/1.1 200 OK

          Cheers,
          Dave

          --- In soaplite@yahoogroups.com, "Martin Busik" <martin.busik@...> wrote:
          >
          > Hi,
          > I suppose, there goes something wrong with your lseSessionId.
          >
          > Have you started a query in your perl code? do you use the same
          > lseSessionID in both requests?
          >
          > Cheers,
          > Martin
          >
          > > ---------- The request object generated by SOAP::Lite ----------
          > > <soap:Envelope
          > > 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/"
          > > xmlns:my="http://zzz.com">
          > > <soap:Header>
          > > <my:lseSessionId>126</my:lseSessionId>
          > > </soap:Header>
          > > <soap:Body>
          > > <my:getLastSearchResult xsi:nil="true" />
          > > </soap:Body>
          > > </soap:Envelope>
          >
        • Martin Busik
          Hi, ... SOAPAction might be the cause. Try this: $proxy- on_action( urn: .$_[1] } ); (see the on_action documentation) Cheers, Martin
          Message 4 of 5 , Mar 18, 2010
          View Source
          • 0 Attachment
            Hi,

            > http header information and SOAP::Lite is sending this:
            >
            > SOAPAction: "http://zzz.com#getLastSearchResult"
            >
            > Whereas soapUI is sending this:
            >
            > SOAPAction: "urn:GetLastSearchResult"

            SOAPAction might be the cause.

            Try this:

            $proxy->on_action( "urn:".$_[1] } );

            (see the on_action documentation)

            Cheers,
            Martin
          • dbower01
            Martin, Still no luck. I m going to start further nitty-gritty checking by writing a very simple webservice just using perl that will return the same type of
            Message 5 of 5 , Mar 18, 2010
            View Source
            • 0 Attachment
              Martin,

              Still no luck. I'm going to start further nitty-gritty checking by writing a very simple webservice just using perl that will return the same type of data object. Based on the snippet I read in SOAP::WSDL regarding JAX inconsistencies. The baffling part is that I actually get a response from the webservice - it just contains no data...

              Dave

              --- In soaplite@yahoogroups.com, "Martin Busik" <martin.busik@...> wrote:
              >
              > Hi,
              >
              > > http header information and SOAP::Lite is sending this:
              > >
              > > SOAPAction: "http://zzz.com#getLastSearchResult"
              > >
              > > Whereas soapUI is sending this:
              > >
              > > SOAPAction: "urn:GetLastSearchResult"
              >
              > SOAPAction might be the cause.
              >
              > Try this:
              >
              > $proxy->on_action( "urn:".$_[1] } );
              >
              > (see the on_action documentation)
              >
              > Cheers,
              > Martin
              >
            Your message has been successfully submitted and would be delivered to recipients shortly.