2014-02-13 34 views
0

我正在嘗試設置用於測試SOAP服務的Fitnesse fixture。我試圖使用SoapUI API來構建來自WSDL的請求,並可能發送和傳播響應。我正在嘗試與SoapUI API集成,如下所述:Integrating with SoapUI與Java中的SOAPUI集成時操縱SOAP請求參數

我可以讀取我的.wsdl文件,並基於我希望調用的操作爲SOAP請求創建模板。然而,對於我的生活,我無法弄清楚如何操作請求中操作的參數字段。

示例請求的getName操作:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Foo"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <urn:getName soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
     <in xsi:type="urn:GetNamedRequest"> 
      <name xsi:type="xsd:string">?</name> 
     </in> 
     </urn:updateRecord> 
    </soapenv:Body> 
</soapenv:Envelope> 

從這個例子中,我希望能夠改變<name/>項目。

理想情況下,我希望能夠使用SoapUI API來更改它,如果它提供了該功能。但是這些文件沒有得到很好的評論和激怒。我並沒有超越它所生成的請求,並將其操作到我的目的,但寧願不去那個措施,因爲API肯定有一些方法來操縱<name/>的內部html。

任何人都可以幫助或指引我在正確的方向嗎?

回答

0

我其實只是處理了這個,可悲的是,真的沒有那麼多體面的方法來處理它。這真的取決於你如何得到XML等等。我會推測你有一個w3c.dom格式的XML。如果不是,您可以使用

XmlUtils.selectFirstDomNode(XmlUtils.createXmlObject(xmlString),XPath); 

創建節點。

之後,使用

XmlUtils.setNodeValue(Node,Value); 

然後,這取決於你如何設置你的要求,我只好把它帶回一個字符串:

XmlUtils.prettyPrintXml(Node); 

的方式了SoapUI處理它的請求內容非常難以合作。老實說,這是我辦公室裏的一個笑話,但現在對我們來說這很合適。