4

I have a problem with my SOAP request. When I have tried the below soap request to the server then it returns the expected result.

Location : https://YOUR_SERVER/apitransactional/services/TransactionalService?wsdl

Input:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                      xmlns:api="http://api.service.apitransactional.emailvision.com/">
    <soapenv:Header/>
    <soapenv:Body>
        <api:openApiConnection>
            <login>usernaem</login>
            <pwd>password</pwd>
            <key>security-key</key>
        </api:openApiConnection>
    </soapenv:Body>
    </soapenv:Envelope>

Output:

<soap:Envelope>
    <soap:Body>
        <ns2:openApiConnectionResponse>
            <return>G9X7CsNn3HisxFdwAu4W76mBewQgH9WW-3CyeO9WBMiHXX_u9ufLHDkA-NypiiYFGh7FLbEz2_c1YonjauDs7Jhk9DGvGNSTLMTjdz5wT2V20E4m3axKPzEnjrvzC63ItFzBIYIeYXHxjKf3w9Yxmmhz5SSeXg</return>
        </ns2:openApiConnectionResponse>
    </soap:Body>
</soap:Envelope>

It returns token of this connection.

But when I tried to the below request then it returns the whole wsdl file instead of success / fail response.

Location: http://api.notificationmessaging.com/NMSOAP/NotificationService?wsdl

Input:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:api="http://api.service.nsapi.emailvision.com/">
    <soapenv:Header/>
    <soapenv:Body>
        <api:sendObjectsWithFullStatus>
            <arg0>
                <sendrequest>
                    <content>
                        <entry>
                            <key>1</key>
                            <value>>
                                <![CDATA[
<table width="600">
<tr>
<td>
<font size="2" face="Arial">Our powerful algorithms
already found a matching profile that matches your criteria:
<br>Celina72&nbsp;</font>
<img src="http://mypath/to/my/image.gif" width="50"
height="50" border="0" />
</td>]]></value>
                        </entry>
                    </content>
                    <dyn>
                        <entry>
                            <key>firstname</key>
                            <value>john</value>
                        </entry>
                    </dyn>
                    <email>jblum@flowerpowershop.biz</email>
                    <encrypt>BdX7CqkmjTHtxWEKB5QK6MzXKkx6HK3E8guM</encrypt>
                    <notificationId>1234</notificationId>
                    <random>4A776E3602000078</random>
                    <senddate>2008-12-12T00:00:00</senddate>
                    <synchrotype>NOTHING</synchrotype>
                    <uidkey>EMAIL</uidkey>
                </sendrequest>
                <sendrequest>
                    <content>
                        <entry>
                            <key>1</key>
                            <value>>
                                <![CDATA[
<table width="600">
<tr>
<td>
<font size="2" face="Arial">Our powerful
algorithms already found a matching profile that matches your criteria:
<br>Celina72&nbsp;</font>
<img src="http://mypath/to/my/image.gif" width-
h="50" height="50" border="0" />
</td>]]></value>
                        </entry>
                    </content>
                    <dyn>
                        <entry>
                            <key>firstname</key>
                            <value>David</value>
                        </entry>
                    </dyn>
                    <email>dcoulon@flowerpowershop.biz</email>
                    <encrypt>BdX7CqkmjTHtxWEKB5QK6MzXKkx6HK3E8guM</encrypt>
                    <notificationId>1234</notificationId>
                    <random>4A776E3602000078</random>
                    <senddate>2008-12-12T00:00:00</senddate>
                    <synchrotype>UPDATE</synchrotype>
                    <uidkey>EMAIL</uidkey>
                </sendrequest>
            </arg0>
        </api:sendObjectsWithFullStatus>
    </soapenv:Body>
</soapenv:Envelope>

Output:

<?xml version='1.0' encoding='UTF-8' ?>
<wsdl:definitions name="NotificationServiceService" targetNamespace="http://api.service.nsapi.emailvision.com/">
<wsdl:types>
    <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://api.service.nsapi.emailvision.com/">
        <xs:element name="MultiSendRequest" type="tns:multiSendRequest" />
        <xs:element name="MultiSendRequestResponse" type="tns:multiSendRequestResponse" />
        <xs:element name="getSendRequestById" type="tns:getSendRequestById" />
        <xs:element name="getSendRequestByIdResponse" type="tns:getSendRequestByIdResponse" />
        <xs:element name="notificationExceptionDetails" type="tns:notificationExceptionDetails" />
        <xs:element name="sendObject" type="tns:sendObject" />
        <xs:element name="sendObjectResponse" type="tns:sendObjectResponse" />
        <xs:element name="sendObjects" type="tns:sendObjects" />
        <xs:element name="sendObjectsResponse" type="tns:sendObjectsResponse" />
        <xs:element name="sendObjectsWithFullStatus" type="tns:sendObjectsWithFullStatus" />
        <xs:element name="sendObjectsWithFullStatusResponse" type="tns:sendObjectsWithFullStatusResponse" />
        <xs:element name="sendrequest" type="tns:sendRequest" />
        <xs:element name="sendrequestresponse" type="tns:sendRequestResponse" />
        <xs:complexType name="sendObjects">
            <xs:sequence>
                <xs:element minOccurs="0" name="arg0" type="tns:multiSendRequest" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="multiSendRequest">
            <xs:sequence>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="sendrequest" nillable="true" type="tns:sendRequest" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="sendRequest">
            <xs:sequence>
                <xs:element name="content">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element maxOccurs="unbounded" minOccurs="0" name="entry">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element minOccurs="0" name="key" type="xs:int" />
                                        <xs:element minOccurs="0" name="value" type="xs:string" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="dyn">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element maxOccurs="unbounded" minOccurs="0" name="entry">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element minOccurs="0" name="key" type="xs:string" />
                                        <xs:element minOccurs="0" name="value" type="xs:string" />
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element minOccurs="0" name="email" type="xs:string" />
                <xs:element minOccurs="0" name="encrypt" type="xs:string" />
                <xs:element name="notificationId" type="xs:long" />
                <xs:element minOccurs="0" name="random" type="xs:string" />
                <xs:element minOccurs="0" name="senddate" type="xs:dateTime" />
                <xs:element minOccurs="0" name="synchrotype" type="tns:synchroType" />
                <xs:element minOccurs="0" name="uidkey" type="xs:string" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="sendObjectsResponse">
            <xs:sequence>
                <xs:element minOccurs="0" name="return" type="tns:multiSendRequestResponse" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="multiSendRequestResponse">
            <xs:sequence>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="element" nillable="true" type="tns:notificationServiceResponse" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="notificationServiceResponse">
            <xs:sequence>
                <xs:element minOccurs="0" name="result" type="xs:anyType" />
            </xs:sequence>
            <xs:attribute name="email" type="xs:string" />
            <xs:attribute name="responseStatus" type="xs:string" />
        </xs:complexType>
        <xs:complexType name="notificationExceptionDetails">
            <xs:sequence>
                <xs:element minOccurs="0" name="description" type="xs:string" />
                <xs:element maxOccurs="unbounded" minOccurs="0" name="fields" nillable="true" type="xs:string" />
                <xs:element minOccurs="0" name="status" type="xs:string" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="getSendRequestById">
            <xs:sequence>
                <xs:element name="arg0" type="xs:long" />
                <xs:element minOccurs="0" name="arg1" type="xs:string" />
                <xs:element minOccurs="0" name="arg2" type="xs:string" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="getSendRequestByIdResponse">
            <xs:sequence>
                <xs:element minOccurs="0" name="return" type="tns:sendRequestResponse" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="sendRequestResponse">
            <xs:sequence>
                <xs:element minOccurs="0" name="email" type="xs:string" />
                <xs:element name="id" type="xs:long" />
                <xs:element name="notificationId" type="xs:long" />
                <xs:element minOccurs="0" name="processDate" type="xs:dateTime" />
                <xs:element minOccurs="0" name="requestDate" type="xs:dateTime" />
                <xs:element minOccurs="0" name="sendDate" type="xs:dateTime" />
                <xs:element minOccurs="0" name="status" type="xs:string" />
                <xs:element minOccurs="0" name="UId" type="xs:string" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="sendObject">
            <xs:sequence>
                <xs:element minOccurs="0" name="arg0" type="tns:sendRequest" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="sendObjectResponse">
            <xs:sequence>
                <xs:element minOccurs="0" name="return" type="xs:string" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="sendObjectsWithFullStatus">
            <xs:sequence>
                <xs:element minOccurs="0" name="arg0" type="tns:multiSendRequest" />
            </xs:sequence>
        </xs:complexType>
        <xs:complexType name="sendObjectsWithFullStatusResponse">
            <xs:sequence>
                <xs:element minOccurs="0" name="return" type="tns:multiSendRequestResponse" />
            </xs:sequence>
        </xs:complexType>
        <xs:simpleType name="synchroType">
            <xs:restriction base="xs:string">
                <xs:enumeration value="NOTHING" />
                <xs:enumeration value="INSERT" />
                <xs:enumeration value="UPDATE" />
                <xs:enumeration value="INSERT_UPDATE" />
            </xs:restriction>
        </xs:simpleType>
    </xs:schema>
    <xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://exceptions.service.nsapi.emailvision.com/">
        <xsd:element name="NotificationServiceException" nillable="true" type="ns0:notificationExceptionDetails" />
    </xsd:schema>
</wsdl:types>
<wsdl:message name="getSendRequestByIdResponse">
    <wsdl:part element="tns:getSendRequestByIdResponse" name="parameters" />
</wsdl:message>
<wsdl:message name="sendObjectsWithFullStatus">
    <wsdl:part element="tns:sendObjectsWithFullStatus" name="parameters" />
</wsdl:message>
<wsdl:message name="NotificationServiceException">
    <wsdl:part element="ns1:NotificationServiceException" name="NotificationServiceException" />
</wsdl:message>
<wsdl:message name="sendObjectResponse">
    <wsdl:part element="tns:sendObjectResponse" name="parameters" />
</wsdl:message>
<wsdl:message name="sendObjectsResponse">
    <wsdl:part element="tns:sendObjectsResponse" name="parameters" />
</wsdl:message>
<wsdl:message name="getSendRequestById">
    <wsdl:part element="tns:getSendRequestById" name="parameters" />
</wsdl:message>
<wsdl:message name="sendObjectsWithFullStatusResponse">
    <wsdl:part element="tns:sendObjectsWithFullStatusResponse" name="parameters" />
</wsdl:message>
<wsdl:message name="sendObjects">
    <wsdl:part element="tns:sendObjects" name="parameters" />
</wsdl:message>
<wsdl:message name="sendObject">
    <wsdl:part element="tns:sendObject" name="parameters" />
</wsdl:message>
<wsdl:portType name="NotificationService">
    <wsdl:operation name="sendObjects">
        <wsdl:input message="tns:sendObjects" name="sendObjects" />
        <wsdl:output message="tns:sendObjectsResponse" name="sendObjectsResponse" />
        <wsdl:fault message="tns:NotificationServiceException" name="NotificationServiceException" />
    </wsdl:operation>
    <wsdl:operation name="getSendRequestById">
        <wsdl:input message="tns:getSendRequestById" name="getSendRequestById" />
        <wsdl:output message="tns:getSendRequestByIdResponse" name="getSendRequestByIdResponse" />
        <wsdl:fault message="tns:NotificationServiceException" name="NotificationServiceException" />
    </wsdl:operation>
    <wsdl:operation name="sendObject">
        <wsdl:input message="tns:sendObject" name="sendObject" />
        <wsdl:output message="tns:sendObjectResponse" name="sendObjectResponse" />
        <wsdl:fault message="tns:NotificationServiceException" name="NotificationServiceException" />
    </wsdl:operation>
    <wsdl:operation name="sendObjectsWithFullStatus">
        <wsdl:input message="tns:sendObjectsWithFullStatus" name="sendObjectsWithFullStatus" />
        <wsdl:output message="tns:sendObjectsWithFullStatusResponse" name="sendObjectsWithFullStatusResponse" />
        <wsdl:fault message="tns:NotificationServiceException" name="NotificationServiceException" />
    </wsdl:operation>
</wsdl:portType>
<wsdl:binding name="NotificationServiceServiceSoapBinding" type="tns:NotificationService">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="sendObjects">
        <soap:operation soapAction="" style="document" />
        <wsdl:input name="sendObjects">
            <soap:body use="literal" />
        </wsdl:input>
        <wsdl:output name="sendObjectsResponse">
            <soap:body use="literal" />
        </wsdl:output>
        <wsdl:fault name="NotificationServiceException">
            <soap:fault name="NotificationServiceException" use="literal" />
        </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="getSendRequestById">
        <soap:operation soapAction="" style="document" />
        <wsdl:input name="getSendRequestById">
            <soap:body use="literal" />
        </wsdl:input>
        <wsdl:output name="getSendRequestByIdResponse">
            <soap:body use="literal" />
        </wsdl:output>
        <wsdl:fault name="NotificationServiceException">
            <soap:fault name="NotificationServiceException" use="literal" />
        </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="sendObject">
        <soap:operation soapAction="" style="document" />
        <wsdl:input name="sendObject">
            <soap:body use="literal" />
        </wsdl:input>
        <wsdl:output name="sendObjectResponse">
            <soap:body use="literal" />
        </wsdl:output>
        <wsdl:fault name="NotificationServiceException">
            <soap:fault name="NotificationServiceException" use="literal" />
        </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="sendObjectsWithFullStatus">
        <soap:operation soapAction="" style="document" />
        <wsdl:input name="sendObjectsWithFullStatus">
            <soap:body use="literal" />
        </wsdl:input>
        <wsdl:output name="sendObjectsWithFullStatusResponse">
            <soap:body use="literal" />
        </wsdl:output>
        <wsdl:fault name="NotificationServiceException">
            <soap:fault name="NotificationServiceException" use="literal" />
        </wsdl:fault>
    </wsdl:operation>
</wsdl:binding>
<wsdl:service name="NotificationServiceService">
    <wsdl:port binding="tns:NotificationServiceServiceSoapBinding" name="NotificationServicePort">
        <soap:address location="http://api.notificationmessaging.com/nsapi/services/NotificationService" />
    </wsdl:port>
</wsdl:service>
</wsdl:definitions>

Expected Output:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <ns2:sendObjectResponse xmlns:n-
                                s2="http://api.service.nsapi.emailvision.com/">
            <return>SendRequest has been successfully saved!</return>
        </ns2:sendObjectResponse>
    </soap:Body>
    </soap:Envelope>

Can anyone suggest what is the actual problem is?

Does this problem from my request or from the server response?

box.around
  • 69
  • 1
  • 8

2 Answers2

6

Is there a specific reason to add ?wsdl to your endpoint address? Response from server(http://api.notificationmessaging.com/NMSOAP/NotificationService) is, not what you expected but definitely not WSLD

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:sendObjectsWithFullStatusResponse xmlns:ns2="http://api.service.nsapi.emailvision.com/">
<return>
<element responseStatus="failed" email="jblum@flowerpowershop.biz">
<result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns4="http://www.w3.org/2001/XMLSchema" xsi:type="ns4:string">
Query random: 4A776E3602000078 doesnt match with notification random: {1} !!!
</result>
</element>
<element responseStatus="failed" email="dcoulon@flowerpowershop.biz">
<result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns4="http://www.w3.org/2001/XMLSchema" xsi:type="ns4:string">
Query random: 4A776E3602000078 doesnt match with notification random: {1} !!!
</result>
</element>
</return>
</ns2:sendObjectsWithFullStatusResponse>
</soap:Body>
</soap:Envelope>
0

Can you check that particular operation mplementation at server side. It must have been sending that wsdl in response instead of your desired response. Also you can check your soap action once, may be due to wrong soap action server is filtering your request by sending you a wsdl, Though i am not seeing any soap action in your wsdl.

I have tried this wsdl in soapui, i am getting proper response from it.Though it is unsuccessful.

Query random: 4A776E3602000078 doesnt match with notification random: {1} !!! Query random: 4A776E3602000078 doesnt match with notification random: {1} !!!

kingAm
  • 1,755
  • 1
  • 13
  • 23