0
votes

I'm kind of new with this Jmeter thing and I'm trying to do a simple SOAP/XML-RPC request on Jmeter. I'm using an example code I found on internet, that seems to work pretty fine (at least using Wizlet in Chrome didn't seem to have a problem), but when I use the soap request that generates the plug-in on the element in Jmeter... Well thats a different story. If someone could tell me the problem it would be awesome.

This is the code of the WSDL:

 <wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://jee.javapapers.com" xmlns:intf="http://jee.javapapers.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://jee.javapapers.com">
<!--
WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)
-->
<wsdl:types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://jee.javapapers.com">
        <element name="animalType">
            <complexType>
                <sequence>
                    <element name="animal" type="xsd:string"/>
                </sequence>
            </complexType>
        </element>
        <element name="animalTypeResponse">
            <complexType>
                <sequence>
                    <element name="animalTypeReturn" type="xsd:string"/>
                </sequence>
            </complexType>
        </element>
    </schema>
</wsdl:types>
<wsdl:message name="animalTypeResponse">
    <wsdl:part element="impl:animalTypeResponse" name="parameters"/>
</wsdl:message>
<wsdl:message name="animalTypeRequest">
    <wsdl:part element="impl:animalType" name="parameters"/>
</wsdl:message>
<wsdl:portType name="AnimalTypeService">
    <wsdl:operation name="animalType">
        <wsdl:input message="impl:animalTypeRequest" name="animalTypeRequest"/>
        <wsdl:output message="impl:animalTypeResponse" name="animalTypeResponse"/>
    </wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AnimalTypeServiceSoapBinding" type="impl:AnimalTypeService">
    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="animalType">
        <wsdlsoap:operation soapAction=""/>
        <wsdl:input name="animalTypeRequest">
            <wsdlsoap:body use="literal"/>
        </wsdl:input>
        <wsdl:output name="animalTypeResponse">
            <wsdlsoap:body use="literal"/>
        </wsdl:output>
    </wsdl:operation>
</wsdl:binding>
<wsdl:service name="AnimalTypeServiceService">
    <wsdl:port binding="impl:AnimalTypeServiceSoapBinding" name="AnimalTypeService">
        <wsdlsoap:address location="http://localhost:8082/WebServicesAnimals/services/AnimalTypeService"/>
    </wsdl:port>
</wsdl:service>
</wsdl:definitions>

And this is the request i'm sending and the response error.

URL: http://localhost:8082/WebServicesAnimals/services/AnimalTypeService?WSDL

BODY:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
        <animalType xmlns="http://jee.javapapers.com">
            <animal>Lion</animal>
        </animalType>
    </soapenv:Body>
</soapenv:Envelope>

Response:

<?xml version="1.0" encoding="UTF-8"?>
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <soapenv:Fault>
   <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Client.NoSOAPAction</faultcode>
   <faultstring>no SOAPAction header!</faultstring>
   <detail>
    <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">WBFINF05</ns2:hostname>
   </detail>
  </soapenv:Fault>
 </soapenv:Body>
</soapenv:Envelope>
1

1 Answers

0
votes

I see at least 2 problems:

  • Why are you sending your request to the URL ending with ?WSDL, you should use:

http://localhost:8082/WebServicesAnimals/services/AnimalTypeService

  • Error says you don't have a SOAPAction. If you confirm you didn't set it, add a Header Manager and set soapAction to ""

Finally you should use regular HTTP REquest instead of SOAP/XML-RPC Request as per this tutorial: