Forum Discussion

murray1's avatar
murray1
Occasional Contributor
9 years ago

Error cannot find parameter

Hi folks

 

I'm working on my first WSDL and trying to get the input and output formats working the way I want them to.  However, often during my changes and testing I'm getting the message:

 

<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>Error cannot find parameter</faultstring>

It would actually be much more helpful if I knew which parameter it couldn't find.

Is there a way of telling what it is looking for?  Or is this a new feature request?

 

Cheers

Murray

 

 

 

 

  • nmrao's avatar
    nmrao
    Champion Level 3
    SoapUI is client in your case, its duty is to show what your server sends as response. Check with your team or look into your application logs.

    Also you can validate the request to see what was missing in your requestion, by using Alt+v key combinations in the request editor.
    • murray1's avatar
      murray1
      Occasional Contributor

      Hi Rao

       

      I tried to validate but I get another error:

      • line -1: Validation of SOAP-Encoded messages not supported

      Are you saying that the message "Error cannot find parameter" is coming from the server?

      This is the PHP builtin SoapServer and there is nothing appearing in the logs, I'm wondering if there is a debug option in the SoapServer - I'll take a look but it doesn't ring any bells.

       

      Cheers

      Murray

       

       

      • murray1's avatar
        murray1
        Occasional Contributor

        I've tracked this down to a piece of XML that I think is in the right place, but clearly it doesn't appear to be. Can somebody help explain what I'm doing wrong:

         

        XSD portion:

        <xs:element name="sobsQuery" type="sobs:sobsSoapType"/>
        
        <xs:complexType name="sobsSoapType">
        <xs:sequence>
            <xs:element name="authentication" type="sobs:authenticationType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="response" type="sobs:responseType" minOccurs="0" maxOccurs="unbounded"></xs:element>
        
            <xs:element name="getResourcesList" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
            <!-- Add more function calls here -->
           
        </xs:sequence>
        <xs:attribute name="version" type="xs:float" use="optional"/>
        </xs:complexType>

        XML source:

               <sobs:sobsQuery version="2.3">
              	<sobs:authentication>
              		<sobs:schoolid>167</sobs:schoolid>
              		<sobs:username>murray</sobs:username>
              		<sobs:password>secret</sobs:password>
              	</sobs:authentication>
              	<sobs:getResourcesList>asd</sobs:getResourcesList>
              </sobs:sobsQuery>

        Generates the error "Error cannot find parameter"

         

        However, if I take out the line 'getResourcesList', that is:

               <sobs:sobsQuery version="2.3">
              	<sobs:authentication>
              		<sobs:schoolid>167</sobs:schoolid>
              		<sobs:username>murray</sobs:username>
              		<sobs:password>secret</sobs:password>
              	</sobs:authentication>
              </sobs:sobsQuery>

        Then it works fine.

         

        If I add the 'getResourcesList' line inside the 'authentication' group like so:

               <sobs:sobsQuery version="2.3">
              	<sobs:authentication>
              		<sobs:schoolid>167</sobs:schoolid>
              		<sobs:username>murray</sobs:username>
              		<sobs:password>secret</sobs:password>
                 	<sobs:getResourcesList>asd</sobs:getResourcesList>
              	</sobs:authentication>
              </sobs:sobsQuery>

        That also works (apart from the fact I'm not expecting to find that line in that location).

         

        So, what am I doing wrong?