Forum Discussion

squidward's avatar
squidward
New Contributor
12 years ago

Inconsistent results from MockService

I have a simple mockservice running on SoapUI 4.5.1 - Windows7.

When I use a mockrequest to call the mockservice, I see this behavior:
- the first request returns the response as expected
- if a second request is immediately executed, a SOAPFault is returned as below
- subsequent requests also return this error
- if I wait for a few minutes and fire again, the behavior resets - the correct response is returned, followed by more errors for subsequent requests

Am seeing this behavior with all my WSDLs... sample is below. Project is attached.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>Server</faultcode>
<faultstring>Missing operation for soapAction [] and body element [null] with SOAP Version [SOAP 1.1]</faultstring>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>


WSDL is below:
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.celcom.com/EMA" targetNamespace="http://www.celcom.com/EMA">
<types>
<xs:schema targetNamespace="http://www.celcom.com/EMA">
<xs:complexType name="EmaProduct">
<xs:sequence>
<xs:element name="Id" type="xs:string" minOccurs="0"/>
<xs:element name="ClassId" type="xs:string" minOccurs="0"/>
<xs:element name="Speed" type="xs:string" minOccurs="0"/>
<xs:element name="APN" type="xs:string" minOccurs="0"/>
<xs:element name="FUP" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ResultStatus">
<xs:sequence>
<xs:element name="StatusCode" type="xs:int"/>
<xs:element name="Message" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:element name="QueryEmaProductRequestMsg">
<xs:complexType >
<xs:sequence>
<xs:element name="EmaProductId" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="QueryEmaProductResultMsg">
<xs:complexType>
<xs:sequence>
<xs:element name="ResultStatus" type="tns:ResultStatus"/>
<xs:element name="EmaProduct" type="tns:EmaProduct" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="UpsertEmaProductRequestMsg" type="tns:EmaProduct"/>
<xs:element name="UpsertEmaProductResultMsg">
<xs:complexType>
<xs:sequence>
<xs:element name="ResultStatus" type="tns:ResultStatus"/>
</xs:sequence>
</xs:complexType>
</xs:element>

</xs:schema>
</types>
<message name="UpsertEmaProductRequest">
<part name="UpsertEmaProductRequest" element="tns:UpsertEmaProductRequestMsg"/>
</message>
<message name="UpsertEmaProductResult">
<part name="UpsertEmaProductResult" element="tns:UpsertEmaProductResultMsg"/>
</message>
<message name="QueryEmaProductRequest">
<part name="QueryEmaProductRequest" element="tns:QueryEmaProductRequestMsg"/>
</message>
<message name="QueryEmaProductResult">
<part name="QueryEmaProductResult" element="tns:QueryEmaProductResultMsg"/>
</message>
<portType name="EmaProduct">
<operation name="UpsertEmaProduct">
<input message="tns:UpsertEmaProductRequest"/>
<output message="tns:UpsertEmaProductResult"/>
</operation>
<operation name="QueryEmaProduct">
<input message="tns:QueryEmaProductRequest"/>
<output message="tns:QueryEmaProductResult"/>
</operation>
</portType>
<binding name="EmaProduct" type="tns:EmaProduct">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="UpsertEmaProduct">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="QueryEmaProduct">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="EmaProduct">
<port name="EmaProduct" binding="tns:EmaProduct">
<soap:address location="http://localhost"/>
</port>
</service>
</definitions>

1 Reply

  • squidward's avatar
    squidward
    New Contributor
    It looks like it is related to the HTTP connection. If I disable HTTP keepalive in preferences, the issue is resolved.

    Unfortunately this is not an option for the client I'm testing with...