title: SOAP Version Mismatch
body: <p>I'm currently working on a client-end Java application that calls a Soap-based (<strong>v1.2</strong>) Webservice. The service provides a method-call 'ping()' to check the service status (whether it's currently available or not). Once the 'ping()' method-call is called using proxy-class instance, I'm getting a <code>java.rmi.RemoteException</code> stating <strong>(400)[ISS.0088.9168] SOAP Version Mismatch</strong>.</p>
  
  <p>The following artifacts are disclosed herewith for your reference;</p>
  
  <ol>
  <li>The WSDL for the service</li>
  </ol>
  
  <p>I also tracked down the Soap-request which has been sent from the client to the service from a tool named <strong>TcpMon</strong>. I also used another tool named <strong>SoapUI</strong> to invoke the 'ping()' method-call and it generated a <strong>successful</strong> response.</p>
  
  <p>The <strong>Soap-request</strong> generated by the <strong>Java application</strong> differs the <strong>Soap-request</strong> generated by <strong>SoapUI</strong>, means there was a Soap version conflict. Those request formats are also disclosed herewith for your understanding.</p>
  
  <ol start="2">
  <li>Soap-request generated Java application (tracked down from TcpMon)</li>
  <li>Soap-request and Soap-response generated by SoapUI</li>
  </ol>
  
  <p>What would be the solution for this?</p>
  
  <p><strong>1. The WSDL for the service</strong></p>
  
  <pre><code>&lt;wsdl:definitions xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapjms="http://www.w3.org/2010/soapjms/" xmlns:tns="http://xxxxxxxxxx" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" name="v1" targetNamespace="http://xxxxxxxxxx"&gt;
  &lt;wsdl:types&gt;
  &lt;pre&gt;
  &lt;xsd:schema xmlns:tns="http://xxxxxxxxxx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xxxxxxxxxx"&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="tns:xxxxxxxxxx"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="tns:xxxxxxxxxx"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="tns:xxxxxxxxxx"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="tns:xxxxxxxxxx"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="tns:xxxxxxxxxx"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="tns:xxxxxxxxxx"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="tns:xxxxxxxxxx"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="tns:xxxxxxxxxx"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="tns:xxxxxxxxxx"/&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element name="xxxxxxxxxx" nillable="true" type="tns:xxxxxxxxxx"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="tns:xxxxxxxxxx"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:simpleType name="xxxxxxxxxx"&gt;
  &lt;xsd:restriction base="xsd:string"&gt;
  &lt;xsd:maxLength value="30"/&gt;
  &lt;xsd:whiteSpace value="preserve"/&gt;
  &lt;/xsd:restriction&gt;
  &lt;/xsd:simpleType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element minOccurs="0" name="status" nillable="true" type="tns:xxxxxxxxxx"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:int"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:string"/&gt;
  &lt;xsd:element maxOccurs="unbounded" name="errors" nillable="true" type="tns:xxxxxxxxxx"/&gt;
  &lt;xsd:element maxOccurs="unbounded" name="warnings" nillable="true" type="tns:warning"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:string"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:string"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:string"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:string"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:string"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:string"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:string"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:string"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element maxOccurs="unbounded" name="faults" nillable="true" type="tns:xxxxxxxxxx"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element name="xxxxxxxxxx" nillable="true" type="xsd:string"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" nillable="true" type="xsd:string"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;&lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element maxOccurs="unbounded" minOccurs="0" name="xxxxxxxxxx" nillable="true" type="tns:xxxxxxxxxx"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:string"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:boolean"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;&lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element name="xxxxxxxxxx" nillable="true" type="xsd:boolean"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element name="xxxxxxxxxx" nillable="true" type="tns:xxxxxxxxxx"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:base64Binary"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="tns:xxxxxxxxxx"/&gt;
  &lt;xsd:element minOccurs="0" name="private" type="xsd:boolean"/&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="tns:xxxxxxxxxx"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:simpleType name="xxxxxxxxxx"&gt;
  &lt;xsd:restriction base="xsd:string"&gt;
  &lt;xsd:maxLength value="500"/&gt;
  &lt;xsd:whiteSpace value="preserve"/&gt;
  &lt;/xsd:restriction&gt;
  &lt;/xsd:simpleType&gt;
  &lt;xsd:simpleType name="xxxxxxxxxx"&gt;
  &lt;xsd:restriction base="xsd:string"&gt;
  &lt;xsd:enumeration value="xxx"/&gt;
  &lt;xsd:enumeration value="xxx"/&gt;
  &lt;xsd:whiteSpace value="preserve"/&gt;
  &lt;/xsd:restriction&gt;
  &lt;/xsd:simpleType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element name="xxxxxxxxxx" nillable="true" type="tns:xxxxxxxxxx"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;xsd:complexType name="xxxxxxxxxx"&gt;
  &lt;xsd:sequence&gt;
  &lt;xsd:element name="xxxxxxxxxx" type="xsd:boolean"/&gt;
  &lt;xsd:element minOccurs="0" name="paymentId" nillable="true" type="xsd:string"/&gt;
  &lt;xsd:element maxOccurs="unbounded" name="errors" nillable="true" type="tns:error"/&gt;
  &lt;/xsd:sequence&gt;
  &lt;/xsd:complexType&gt;
  &lt;/xsd:schema&gt;
  &lt;/wsdl:types&gt;
  &lt;wsdl:message name="xxxxxxxxxx"&gt;
  &lt;wsdl:part name="parameters" element="tns:xxxxxxxxxx"&gt;&lt;/wsdl:part&gt;
  &lt;/wsdl:message&gt;
  &lt;wsdl:message name="xxxxxxxxxx"&gt;
  &lt;wsdl:part name="parameters" element="tns:xxxxxxxxxx"&gt;&lt;/wsdl:part&gt;
  &lt;/wsdl:message&gt;
  &lt;wsdl:message name="xxxxxxxxxx"&gt;
  &lt;wsdl:part name="parameters" element="tns:xxxxxxxxxx"&gt;&lt;/wsdl:part&gt;
  &lt;/wsdl:message&gt;
  &lt;wsdl:message name="xxxxxxxxxx"&gt;
  &lt;wsdl:part name="parameters" element="tns:xxxxxxxxxx"&gt;&lt;/wsdl:part&gt;
  &lt;/wsdl:message&gt;
  &lt;wsdl:message name="xxxxxxxxxx"&gt;
  &lt;wsdl:part name="parameters" element="tns:xxxxxxxxxx"&gt;&lt;/wsdl:part&gt;
  &lt;/wsdl:message&gt;
  &lt;wsdl:message name="xxxxxxxxxx"&gt;
  &lt;wsdl:part name="parameters" element="tns:xxxxxxxxxx"&gt;&lt;/wsdl:part&gt;
  &lt;/wsdl:message&gt;
  &lt;wsdl:message name="xxxxxxxxxx"&gt;
  &lt;wsdl:part name="parameters" element="tns:xxxxxxxxxx"&gt;&lt;/wsdl:part&gt;
  &lt;/wsdl:message&gt;
  &lt;wsdl:message name="xxxxxxxxxx"&gt;
  &lt;wsdl:part name="parameters" element="tns:xxxxxxxxxx"&gt;&lt;/wsdl:part&gt;
  &lt;/wsdl:message&gt;
  &lt;wsdl:message name="xxxxxxxxxx"&gt;
  &lt;wsdl:part name="parameters" element="tns:xxxxxxxxxx"&gt;&lt;/wsdl:part&gt;
  &lt;/wsdl:message&gt;
  &lt;wsdl:portType name="xxxxxxxxxx"&gt;
  &lt;wsdl:operation name="xxxxxxxxxx"&gt;
  &lt;wsdl:input message="tns:xxxxxxxxxx"&gt;&lt;/wsdl:input&gt;
  &lt;wsdl:output message="tns:xxxxxxxxxx"&gt;&lt;/wsdl:output&gt;
  &lt;wsdl:fault name="faults" message="tns:xxxxxxxxxx"&gt;&lt;/wsdl:fault&gt;
  &lt;/wsdl:operation&gt;
  &lt;wsdl:operation name="xxxxxxxxxx"&gt;
  &lt;wsdl:input message="tns:xxxxxxxxxx"&gt;&lt;/wsdl:input&gt;
  &lt;wsdl:output message="tns:xxxxxxxxxx"&gt;&lt;/wsdl:output&gt;
  &lt;wsdl:fault name="xxxxxxxxxx" message="tns:xxxxxxxxxx"&gt;&lt;/wsdl:fault&gt;
  &lt;/wsdl:operation&gt;
  &lt;wsdl:operation name="xxxxxxxxxx"&gt;
  &lt;wsdl:input message="tns:xxxxxxxxxx"&gt;&lt;/wsdl:input&gt;
  &lt;wsdl:output message="tns:xxxxxxxxxx"&gt;&lt;/wsdl:output&gt;
  &lt;/wsdl:operation&gt;
  &lt;wsdl:operation name="xxxxxxxxxx"&gt;
  &lt;wsdl:input message="tns:xxxxxxxxxx"&gt;&lt;/wsdl:input&gt;
  &lt;wsdl:output message="tns:xxxxxxxxxx"&gt;&lt;/wsdl:output&gt;
  &lt;wsdl:fault name="xxxxxxxxxx" message="tns:xxxxxxxxxx"&gt;&lt;/wsdl:fault&gt;
  &lt;/wsdl:operation&gt;
  &lt;/wsdl:portType&gt;
  &lt;wsdl:binding name="xxxxxxxxxx" type="tns:xxxxxxxxxx"&gt;
  &lt;soap12:binding style="xxxxxxxxxx" transport="http://schemas.xmlsoap.org/soap/http"/&gt;
  &lt;wsdl:operation name="xxxxxxxxxx"&gt;
  &lt;soap12:operation soapAction="xxxxxxxxxx" style="document"/&gt;
  &lt;wsdl:input&gt;
  &lt;soap12:body parts="parameters" use="literal"/&gt;
  &lt;/wsdl:input&gt;
  &lt;wsdl:output&gt;
  &lt;soap12:body parts="parameters" use="literal"/&gt;
  &lt;/wsdl:output&gt;
  &lt;wsdl:fault name="xxxxxxxxxx"&gt;
  &lt;soap12:fault name="xxxxxxxxxx" use="literal"/&gt;
  &lt;/wsdl:fault&gt;
  &lt;/wsdl:operation&gt;
  &lt;wsdl:operation name="xxxxxxxxxx"&gt;
  &lt;soap12:operation soapAction="xxxxxxxxxx"/&gt;
  &lt;wsdl:input&gt;
  &lt;soap12:body parts="parameters" use="literal"/&gt;
  &lt;/wsdl:input&gt;
  &lt;wsdl:output&gt;
  &lt;soap12:body parts="parameters" use="literal"/&gt;
  &lt;/wsdl:output&gt;
  &lt;wsdl:fault name="xxxxxxxxxx"&gt;
  &lt;soap12:fault name="xxxxxxxxxx" use="literal"/&gt;
  &lt;/wsdl:fault&gt;
  &lt;/wsdl:operation&gt;
  &lt;wsdl:operation name="ping"&gt;
  &lt;soap12:operation soapAction="xxxxxxxxxx" style="document"/&gt;
  &lt;wsdl:input&gt;
  &lt;soap12:body parts="parameters" use="literal"/&gt;
  &lt;/wsdl:input&gt;
  &lt;wsdl:output&gt;
  &lt;soap12:body parts="parameters" use="literal"/&gt;
  &lt;/wsdl:output&gt;
  &lt;/wsdl:operation&gt;
  &lt;wsdl:operation name="xxxxxxxxxx"&gt;
  &lt;soap12:operation soapAction="xxxxxxxxxx" style="document"/&gt;
  &lt;wsdl:input&gt;
  &lt;soap12:body parts="parameters" use="literal"/&gt;
  &lt;/wsdl:input&gt;
  &lt;wsdl:output&gt;
  &lt;soap12:body parts="parameters" use="literal"/&gt;
  &lt;/wsdl:output&gt;
  &lt;wsdl:fault name="xxxxxxxxxx"&gt;
  &lt;soap12:fault name="xxxxxxxxxx" use="literal"/&gt;
  &lt;/wsdl:fault&gt;
  &lt;/wsdl:operation&gt;
  &lt;/wsdl:binding&gt;
  &lt;wsdl:service name="xxxxxxxxxx"&gt;
  &lt;wsdl:port name="xxxxxxxxxx" binding="tns:xxxxxxxxxx"&gt;
  &lt;soap12:address location="https://xxxxxxxxxx"/&gt;
  &lt;/wsdl:port&gt;
  &lt;/wsdl:service&gt;
  &lt;/wsdl:definitions&gt;
  </code></pre>
  
  <p><strong>2. Soap-request generated Java application (tracked down from TcpMon) [Failed]</strong></p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;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"&gt;
      &lt;soapenv:Body&gt;
          &lt;ping xmlns="http://xxxxxxxxxx"/&gt;
      &lt;/soapenv:Body&gt;
  &lt;/soapenv:Envelope&gt;
  </code></pre>
  
  <p><strong>3. Soap-request generated by SoapUI [Successful]</strong></p>
  
  <pre><code>&lt;soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:dir="http://xxxxxxxxxx"&gt;
     &lt;soap:Header/&gt;
     &lt;soap:Body&gt;
        &lt;dir:ping/&gt;
     &lt;/soap:Body&gt;
  &lt;/soap:Envelope&gt;
  </code></pre>
  
  <p><strong>3. Soap-response generated by SoapUI [Successful]</strong></p>
  
  <pre><code>&lt;?xml version='1.0' encoding='UTF-8'?&gt;
  &lt;soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"&gt;
      &lt;soapenv:Body&gt;
          &lt;ser-root:pingResponse xmlns:ser-root="http://xxxxxxxxxx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
              &lt;status&gt;true&lt;/status&gt;
          &lt;/ser-root:pingResponse&gt;
      &lt;/soapenv:Body&gt;
  &lt;/soapenv:Envelope&gt;
  </code></pre>