2017-09-27 44 views
0

我在调用Webservice时遇到问题。我的响应元素的名称与WSDL中的名称不同。然而对于这个请求,它完美的工作。我的webservice响应名称空间错误

你对此有什么想法吗?不同的名字对我来说看起来很好。

这是WSDL:

<?xml version="1.0" encoding="UTF-8"?> 
<definitions name="test-existence-muna-service" 
    targetNamespace="http://www.fimasys.com/fsb" 
    xmlns="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    xmlns:tns="http://www.fimasys.com/fsb" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 

    <types> 
     <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.fimasys.com/fsb"> 
      <element name="TestExistenceMuna_Input_Message"> 
       <complexType> 
        <sequence> 
         <element minOccurs="1" name="muna" type="string"/> 
        </sequence> 
       </complexType> 
      </element> 
      <element name="TestExistenceMuna_Output_Message"> 
       <complexType> 
        <sequence> 
         <element minOccurs="1" name="existenceMuna" type="boolean"/> 
        </sequence> 
       </complexType> 
      </element> 
     </schema> 
    </types> 

    <message name="TestExistenceMuna_Input_Message"> 
     <part name="parameters" element="tns:TestExistenceMuna_Input_Message"></part> 
    </message> 
    <message name="TestExistenceMuna_Output_Message"> 
     <part name="parameters" element="tns:TestExistenceMuna_Output_Message"></part> 
    </message> 

    <portType name="testExistenceMunaPortType"> 
     <operation name="getExistenceMuna"> 
      <input message="tns:TestExistenceMuna_Input_Message" /> 
      <output message="tns:TestExistenceMuna_Output_Message" /> 
     </operation> 
    </portType> 

    <binding name="testExistenceMunaBinding" type="tns:testExistenceMunaPortType"> 
     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 
     <operation name="getExistenceMuna"> 
      <soap:operation soapAction="http://www.fimasys.com/fsb/getExistenceMuna" /> 
      <input> 
       <soap:body use="literal" /> 
      </input> 
      <output> 
       <soap:body use="literal" /> 
      </output> 
     </operation> 
    </binding> 

    <service name="test-existence-muna-service"> 
     <port binding="tns:testExistenceMunaBinding" name="testExistenceMunaPort"> 
      <soap:address location="http://0.0.0.0:8088/fsb/test-existence-muna-service/"/> 
     </port> 
    </service> 
</definitions> 

这是了SoapUI请求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:fsb="http://www.fimasys.com/fsb"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <fsb:TestExistenceMuna_Input_Message> 
     <muna>07282166.12</muna> 
     </fsb:TestExistenceMuna_Input_Message> 
    </soapenv:Body> 
</soapenv:Envelope> 

这是了SoapUI响应:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
     <ns2:getExistenceMunaResponse xmlns:ns2="http://www.fimasys.com/fsb"> 
     <existenceMuna>true</existenceMuna> 
     </ns2:getExistenceMunaResponse> 
    </soap:Body> 
</soap:Envelope> 
+0

不只是引用为'getExixtenceMunaResponse'在WSDL某处你的回应元素?你可以显示你的wsdl文件吗? – bilak

+0

谢谢你的回答。我编辑了原文。 –

+0

你也有获得实施吗?是不是有一些包装或什么导致元素被重命名? – bilak

回答

0

看起来你有疑问就请求和响应中的前缀,即,fsbns2,对不对?

只要它使用相同的名称空间,使用什么前缀并不重要。如果您查看请求和响应,则都指向名称空间http://www.fimasys.com/fsb

你可以阅读更多关于命名空间here

+0

好的,谢谢你。我真正的问题是WSDL,我的响应被设置为一个,但是soapui给了我一个而是...顺便说一下,输入是OK的,在WSDL和soapui中它是

相关问题