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

6296Problem implementing web service

Expand Messages
  • Vlad
    Mar 12, 2009
    • 0 Attachment
      Hello everyone,
       
      I've encountered the following problem while implementing Web Service server side using Soap::Lite (Perl).
      I receive the following error message:
      "SOAPAction shall match 'uri#method' if present (got 'SushiService:GetReport', expected 'http://www.niso.org/schemas/sushi/counter#ReportRequest'"
      What is the reason of this error?
       
      My WSDL is:
       
      <definitions xmlns:tns="SushiService"
                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                   xmlns:sc="http://www.niso.org/schemas/sushi/counter"
                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                   name="SushiService"
                   targetNamespace="SushiService"
                   xmlns="http://schemas.xmlsoap.org/wsdl/">
         <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
         <types>
            <xsd:schema>
               <xsd:import schemaLocation="http://www.niso.org/schemas/sushi/counter_sushi3_0.xsd" namespace="http://www.niso.org/schemas/sushi/counter"/>
            </xsd:schema>
         </types>
         <message name="GetReportIn">
            <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
            <part name="messagePart" element="sc:ReportRequest"/>
         </message>
         <message name="GetReportOut">
            <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
            <part name="messagePart" element="sc:ReportResponse"/>
         </message>
         <portType name="SushiServiceInterface">
            <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
            <operation name="GetReport">
               <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
               <input message="tns:GetReportIn"/>
               <output message="tns:GetReportOut"/>
            </operation>
         </portType>
         <binding name="SushiService" type="tns:SushiServiceInterface">
            <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
            <operation name="GetReport">
               <soap:operation soapAction="SushiService:GetReportIn" style="document"/>
               <input>
                  <soap:body use="literal"/>
               </input>
               <output>
                  <soap:body use="literal"/>
               </output>
            </operation>
         </binding>
         <service name="SushiService">
            <port name="SushiServicePort"
                  binding="tns:SushiService">
               <soap:address location="http://dl/SushiService"/>
            </port>
         </service>
      </definitions>
       
      My server side code is very small:
       
          #!/usr/bin/perl
          use strict;
       
          use SOAP::Transport::HTTP;
       
          my $server = SOAP::Transport::HTTP::CGI
           ->dispatch_to("SushiService")
           ->handle;
       
          package SushiService;
          sub GetReport {
              my $xml_response;
              ....
              return $xml_response;
          }
       
          1;
       
      Could you please help me to resolve this problem?
       
      Best regards,
      Vlad

      --
      This message has been scanned for viruses and
      dangerous content by MailScanner, and is
      believed to be clean.