Web Service returning NULL

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Algobardo
    New Member
    • Aug 2008
    • 1

    Web Service returning NULL

    Good morning,
    this is the first time i write on this forum because i googled and i've seen related post with no solution.

    I will expose briefly the problem.
    I'm using c# 3.5 and i'm trying using a web service.
    Unfortunatly i get a NULL response and i can't understand why.

    RpcRsat.RSATWSP ortType rpt = new RpcRsat.RSATWSP ortTypeClient() ;
    RpcRsat.retriev e_seqResponse res = rpt.retrieve_se q(req);

    res is NULL.

    I've seen that this problem is a naming related problem so i think that if i post both the wsdl and server request/answer would be possible to correct the wsdl to have a not null answer.

    The wsdl of the service
    Code:
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="RSATWS.xsl"?>
    <definitions name="RSATWS"
      targetNamespace="urn:RSATWS"
              xmlns:tns="urn:RSATWS"
              xmlns:xsd="http://www.w3.org/2001/XMLSchema"
              xmlns="http://schemas.xmlsoap.org/wsdl/"
    	  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    	  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
    
      <types>
        <xsd:schema targetNamespace="urn:RSATWS" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
    
          <xsd:complexType name="RetrieveSequenceRequest">
            <xsd:annotation>
    	  <xsd:documentation>
    	    Parameters for the operation retrieve_seq.
    	  </xsd:documentation>
            </xsd:annotation>
            <xsd:sequence>
    	  <xsd:element name="output" type="xsd:string" minOccurs="0">
    	    <xsd:annotation>
    	      <xsd:documentation>
    	        Return type. Accepted values: 'server' (result is stored on a file on the server), 'client' (result is directly transferred to the client), or  'both'. Default is 'both'.
    	      </xsd:documentation>
    	    </xsd:annotation>
    	  </xsd:element>
    	  <xsd:element name="organism" type="xsd:string" minOccurs="1">
                <xsd:annotation>
                  <xsd:documentation>
                    Organism. Words need to be underscore separated (example: Escherichia_coli_K12).
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="query" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
                <xsd:annotation>
                  <xsd:documentation>
                    A list of query genes.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="all" type="xsd:int" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>
                    Return sequences for all the genes of the organism if value =
            1. Incompatible with query.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="noorf" type="xsd:int" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>
                    Prevent overlap with upstream open reading frames (ORF) if
            value = 1.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="from" type="xsd:int" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>
                    Inferior limit of the region to retrieve. Default is organism dependant (example: Saccharomyces cerevisiae = -800).
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="to" type="xsd:int" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>
                    Superior limit of the region to retrieve. Default is '-1'.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="feattype" type="xsd:string" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>
                    Type of genome features to load. Supported: CDS, mRNA, tRNA, rRNA.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="type" type="xsd:string" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>
                    Sequence type. Supported: upstream, downstream, ORF (unspliced open reading frame).
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="format" type="xsd:string" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>
                    Sequence format. Supported: IG (Intelligenetics), WC (wconsensus), raw, FastA
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="lw" type="xsd:int" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>
                    Line width (0 for whole sequence on one line).
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="label" type="xsd:string" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>
                    Field(s) to be used in the sequence label. Multiple fields can be specified, separated by commas. Supported: id, name, organism_name, sequence_type, current_from, current_to, ctg, orf_strand, reg_left, reg_right. Default: name.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="label_sep" type="xsd:string" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>
                    Separator between the label fields. Default: | (pipe character).
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="nocom" type="xsd:int" minOccurs="0">
               <xsd:annotation>
                  <xsd:documentation>
                    No comments if value = 1. Only the identifier and the sequence are returned. By default, the comment indicates the ORF and upstream sequence coordinates.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="repeat" type="xsd:int" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>
                    Use the repeat masked version of the genome if value = 1. Attention: repeated regions are annotated for some genomes only.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	  <xsd:element name="imp_pos" type="xsd:int" minOccurs="0">
                <xsd:annotation>
                  <xsd:documentation>
                    Admit imprecise positions if value = 1.
                  </xsd:documentation>
                </xsd:annotation>
              </xsd:element>
    	</xsd:sequence>
          </xsd:complexType>
    
          <xsd:complexType name="RetrieveSequenceResponse">
    	<xsd:sequence>
    	  <xsd:element name="server" type="xsd:string">
    	    <xsd:annotation>
    	      <xsd:documentation>
    	        Location of the result file on the server. This can be used as input for a further request.
    	      </xsd:documentation>
    	    </xsd:annotation>
    	  </xsd:element>
    	  <xsd:element name="command" type="xsd:string">
    	    <xsd:annotation>
    	      <xsd:documentation>
    	        The stand alone command executed on the server.
    	      </xsd:documentation>
    	    </xsd:annotation>
    	</xsd:element>
    	  <xsd:element name="client" type="xsd:string">
    	 <xsd:annotation>
    	  <xsd:documentation>
    	   The results.
    	  </xsd:documentation>
    	 </xsd:annotation>
    	</xsd:element>
    	 </xsd:sequence>
    	</xsd:complexType>
    
        </xsd:schema>
      </types>
    
      <message name="RetrieveSequenceInput">
          <part name="request" type="tns:RetrieveSequenceRequest"/>
      </message>
        
      <message name="RetrieveSequenceOutput">
          <part name="response" type="tns:RetrieveSequenceResponse"/>
      </message>
    
      <portType name="RSATWSPortType">
          <operation name="retrieve_seq">
             <input name="RetrieveSequenceRequest" message="tns:RetrieveSequenceInput"/>
             <output name="RetrieveSequenceResponse" message="tns:RetrieveSequenceOutput"/>         
    	 <documentation>Returns upstream, downstream or coding DNA sequences
               for list of query genes.
             </documentation>
          </operation>
      </portType>
      
      <binding name="RSATWSBinding" type="tns:RSATWSPortType">
          <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
          <operation name="retrieve_seq">
             <soap:operation soapAction="urn:RSATWS#retrieve_seq"/>
             <input name="RetrieveSequenceRequest">
                 <soap:body use="literal" namespace="urn:RSATWS" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
             </input>
             <output name="RetrieveSequenceResponse">
                 <soap:body use="literal" namespace="urn:RSATWS" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
             </output>
          </operation>
      </binding>
    
      <service name="RSATWebServices">
        <documentation>
          Web services for the Regulatory Sequence Analysis Tools (RSAT).
          Tools developed by Jacques van Helden
          (jvanheld@scmbb.ulb.ac.be), SOAP/WSDL interface developed by
          Olivier Sand (oly@scmbb.ulb.ac.be).
       </documentation>
        <port name="RSATWSPortType" binding="tns:RSATWSBinding">
    	<soap:address location="http://rsat.scmbb.ulb.ac.be/rsat/web_services/RSATWS.cgi"/>
            <!--soap:address location="http://localhost/rsat/web_services/RSATWS.cgi"/-->
        </port>
      </service>
    </definitions>[/I]
    
    
    The request
    [I]
    POST /rsat/web_services/RSATWS.cgi HTTP/1.1..Content-Type: text/xml; charset=utf-8..VsDebuggerCausalityData: uIDPozNkTwqKKWxEvLtLCIpZ12sAAAAAwFGQKj7fw0m0XzI12/8zRVZAMVRscIJMobGqcgydosMACQAA..SOAPAction: "urn:RSATWS#retrieve_seq"..Host: rsat.scmbb.ulb.ac.be..Content-Length: 396..Expect: 100-continue..Connection: Keep-Alive....
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
      <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <retrieve_seq xmlns="urn:RSATWS">
          <request xmlns="">
            <organism>Escherichia_coli_K12</organism>
            <query>MetA</query><feattype>CDS</feattype><type>upstream</type><format>FastA</format>
          </request>
        </retrieve_seq>
      </s:Body>
    </s:Envelope>
    [/I]
    The answer of the server
    [I]
    
    HTTP/1.1 200 OK..Date: Tue, 05 Aug 2008 08:53:41 GMT..Server: Apache/2.2.8 (Linux/SUSE)..LOG ### /home/rsat/rsa-tools/public_html/logs/log-file_rsat_WS_2008_08Status: 200 OK..SOAPServer: SOAP::Lite/Perl/0.710.07..Content-Length: 1269..Keep-Alive: timeout=30, max=100..Connection: Keep-Alive..Content-Type: text/xml; charset=utf-8....
    <?xml version="1.0" encoding="UTF-8"?>
    <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/">
      <soap:Body>
        <retrieve_seqResponse xmlns="urn:RSATWS">
          <response>
            <client xsi:type="xsd:string">&gt;metA.MetA; upstream from -400 to -1; size: 400; location: NC_000913.2 4211903 4212302 D.CATCAGGATCGATAAACAGCGCATCCATATGCTGCCCACTTAGCAACATAAATCCAACCG.GCTGATCCCGCTCATTAACCGCGACCCACAACGGCGCTTCCGGCAGGAAGGAACGAACTA.GGTCCTCCAGCTCGGTCCGATACTCTGCTGATAGAAAATCGTGAGTGGCATCGACAGAAC.GACACCAAATCGCAACGAGTTCCTCCCCTTCCTCATGCCGTGAGCGGCGAATACTAATAA.CCATTTTCTCTCCTTTTAGTCATTCTTATATTCTAACGTAGTCTTTTCCTTGAAACTTTC.TCACCTTCAACATGCAGGCTCGACATTGGCAAATTTTCTGGTTATCTTCAGCTATCTGGA.TGTCTAAACGTATAAGCGTATGTAGTGAGGTAATCAGGTT..</client>
            <server xsi:type="xsd:string">/home/rsat/rsa-tools/public_html/tmp/retrieve-seq.vBF9M7mRXoFastA</server>
            <command xsi:type="xsd:string">/home/rsat/rsa-tools/perl-scripts/retrieve-seq -org 'Escherichia_coli_K12' -q 'MetA' -feattype 'CDS' -type 'upstream' -format 'FastA'</command>
          </response>
        </retrieve_seqResponse>
      </soap:Body>
    </soap:Envelope>
    Thank you in adwance, i hope you can help me because i'm working on this problem from centuries.
    Last edited by Curtis Rutland; Aug 5 '08, 01:34 PM. Reason: USE CODE TAGS!
Working...