2013-12-19 91 views
2

我有我的SOAP请求时出现问题。当我尝试了下面的soap请求到服务器时,它返回 预期的结果。SOAP请求返回的WSDL,而不是预期的SOAP响应

地点:https://YOUR_SERVER/apitransactional/services/TransactionalService?wsdl

输入:

<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> 

输出:

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

它返回此连接的令牌。

但是,当我尝试下面的请求,那么它返回整个WSDL文件,而不是 成功/失败的响应。

地点:http://api.notificationmessaging.com/NMSOAP/NotificationService?wsdl

输入:

<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>[email protected]</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>[email protected]</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> 

输出:

<?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> 

预期输出:

<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> 

任何人都可以提出什么实际PROBL他们是?

从我的请求或来自服务器的响应请问这个问题?

回答

3

是否有特殊原因,WSDL补充的吗?你的端点地址?从服务器(http://api.notificationmessaging.com/NMSOAP/NotificationService)的反应是,你希望不是,但绝对不是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="[email protected]"> 
<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="[email protected]"> 
<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

谢谢。这解决了我的问题。我在端点地址中添加了一个不必要的?wsdl。 –

0

你可以检查在服务器端的特定操作mplementation。它一定是发送了那个wsdl而不是你想要的响应。你也可以检查你的soap动作一次,可能是由于错误的soap动作服务器通过发送给你一个wsdl来过滤你的请求,尽管我没有在你的wsdl中看到任何soap动作。

我已经试过这个WSDL中的soapUI,我收到来自it.Though它是不成功的适当反应。

随机查询:4A776E3602000078犯规匹配通知随机:{1} !!! 随机查询:4A776E3602000078犯规匹配通知随机:{1} !!!