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

5785Help on: No such operation 'citedReferences' at line xx

Expand Messages
  • gindo tampubolon
    Jan 11 11:23 AM
      Dear all,

      I'm writing a perl client, following closely a working Java client, to access an ISI web service (deployed as an Axis web application I was told). My preferences is Perl as it's served me well. But I'm still not able to get this client working; it gives the above message.
      Here's [A] my code to access the operation/'port' called citedReferences; followed by [B] excerpts from the WSDL which I've downloaded to my current directory. The excerpts are from various parts of the WSDL pertaining to the said operation. For the sake of completeness, it's followed by [C] expected response & [D] Java code I'm trying to emulate.

      Please help me: have I correctly specify the service, the proxy, the method, and the params?
      Any ideas what else should I try?  I'm obviously stumped here [and slightly desperate].
      Platform: Windows XP-SP2, ActiveState Perl 5.8, SOAP::Lite 0.69

      Thanks ever so much for your help.

      [  Part A  ]
      use strict;
      use SOAP::Lite;

      my %article = (
                    databaseID => 'WOS',
                    primaryKey => 'A1973P772600003'

      my $schema = shift || 'file:./SearchRetrieve.wsdl';
      my $soap = SOAP::Lite->service($schema);


      my $som = $soap->call('citedReferences', %article);
      die $som->faultstring if $som->fault;

      print $som->result;
      #print $som->valueof('//searchRetrieveResponse/searchRetrieveReturn/records/RECORDS/REC/AU');

      #This code result in: No such operation 'citedReferences' at line 16.

      [  Part B: WSDL excerpts  ]
      <wsdl: definitions targetNamespace="http://esti.isinet.com/soap/search/">
      . . .
      <wsdl:types> . . . </wsdl:types>
      <wsdl:messagename= name="citedReferencesRequest">
          <wsdl:part name="databaseID" type="xsd:string"/>
          <wsdl:part name="primaryKey" type="xsd:string"/>
      . . .
      <wsdl:portType name="SearchRetrieve">
          <wsdl:operation name="citedReferences" parameterOrder="databaseID primaryKey">
               <wsdl:input message="impl:citedReferencesRequest" name="citedReferencesRequest"/>
               <wsdl:output message="impl:citedReferencesResponse" name="citedReferencesResponse"/>
      . . .
      <wsdl:binding name="SearchRetrieveSoapBinding" type="impl:SearchRetrieve">
      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
      . . .
          <wsdl:operation name="citedReferences">
               <wsdlsoap:operation soapAction="citedReferences"/>
               <wsdl:input name="citedReferencesRequest">
                    <wsdlsoap:body encodingStyle=" http://schemas.xmlsoap.org/soap/encoding"
                       namespace="http://esti.isinet.com/soap/search" use="encoded"/>
               <wsdl:output . . . >
               . . .
      . . .
      <wsdl:service name="SearchRetrieveService">
           <wsdl:port binding="impl:SearchRetrieveSoapBinding" name="SearchRetrieve">
                <wsdlsoap:address location="http://wok-ws.isiknowledge.com/esti/soap/SearchRetrieve"/>

      [  Part C: expected response  ]

      <REC inst_id="44" recid="17793876" hot="no" chem="no" sortkey="0" timescited="24" ref_total="61">
      <SP>U</SP><CK></CK><AU>BARNES JA</AU><J2>SOCIAL NETWORKS URBA</J2><VL> </VL><BP> </BP><PY>1969</PY><AN> </AN><LOC></LOC><REF></REF><RECID>17793876</RECID><NR>24</NR>
      . . .

      [  Part D: working Java code  ]
      package com.isinet.esti.soap.search;
      import org.apache.axis.client.Stub;

      public class Client {

        public static void main(String[] args) {
        try {
            SearchRetrieveServiceLocator service =
                      new SearchRetrieveServiceLocator();
            SearchRetrieve client = service.getSearchRetrieve();
            String results = client.citedReferences("WOS","A1973P772600003");
        catch(Exception e) {