与netbeans中编写的java程序相比,SoapUI没有给出正确的响应

时间:2014-05-30 15:25:50

标签: web-services soapui

我是webservices的新手,
wsdl链接:http://pp.hotels.travelrepublic.co.uk/ChannelManager.svc?wsdl 我有一个wsdl网址,很容易在我创建和使用的netbeans中。

通过netbeans输入到webservice:
我在netbeans请求中通过java程序发送请求是:

<Request><Authentication CMId='68' Guid='5594FB83-F4D4-431F-B3C5-EA6D7A8BA795' Password='poihg321TR' Function='1' /><Establishment Id='4297867' > </Establishment></Request>  

回复是:

<Response>
  <Authentication CMId="68" Guid="5594FB83-F4D4-431F-B3C5-EA6D7A8BA795" Password="poihg321TR" Function="1" />
<Establishment Id="4297867">
<RoomTypes>
  <RoomType RoomTypeId="1040459" Description="Double Room" />
  <RoomType RoomTypeId="1040458" Description="Single Room" />
</RoomTypes>
<BoardTypes>
  <BoardType BoardTypeId="1" Description="Room Only" />
</BoardTypes>

在SoapUI的帮助下 生成的请求是

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:tem="http://tempuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
     <tem:RequestData>
     <!--Optional:-->
 <tem:requestDocument xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
      </tem:RequestData>
   </soapenv:Body> 
</soapenv:Envelope>  

我通过SoapUI发送的是

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:RequestData>
     <!--Optional:-->
 <tem:requestDocument xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
        <!--The data sent via java program:-->
      <Request>
  <Authentication CMId='68' Guid='5594FB83-F4D4-431F-B3C5-EA6D7A8BA795'  Password='poihg321TR' Function='1' />
     <Establishment Id='4297867' >
     </Establishment>
     </Request>
    <!--The data sent via java program:-->
     </tem:RequestData>
  </soapenv:Body>
</soapenv:Envelope>  

如果我在SoapUI中运行

输出与

不同
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
  <RequestDataResponse xmlns="http://tempuri.org/">
         <RequestDataResult>&lt;Response Error="Unable to parse xml">
       &lt;RequestDate Date="2014-05-30 16:14:15.7383" />
     &lt;/Response></RequestDataResult>
  </RequestDataResponse>
 </s:Body>
</s:Envelope>

1 个答案:

答案 0 :(得分:0)

尝试:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:RequestData>
         <!--Optional:-->
         <tem:requestDocument>
         <![CDATA[<Request>
               <Authentication CMId="68" Guid="5594FB83-F4D4-431F-B3C5-EA6D7A8BA795" Password="poihg321TR" Function="1"/>
               <Establishment Id="4297867"></Establishment>
            </Request>]]>
         </tem:requestDocument>
      </tem:RequestData>
   </soapenv:Body>
</soapenv:Envelope>

基本上,WSDL没有定义任何RequestAuthentication以及其他东西,所以你不能发送它。此外,响应告诉您:“无法解析xml”,因此应用程序(而不是服务)正在查找XML数据。