在soap中填充数据库查询中的多个响应项

时间:2013-10-07 10:24:07

标签: xml groovy request response soapui

我正在尝试使soap模拟服务更具动态性,并且遇到了一些问题。我不知道如何使用数据库行中的信息填充多个响应项。我将解释项目设置以及我尽力做的事情。

项目的工作方式如下: 1.应用程序设置为将xml请求发送到soap模拟服务。 2. mockservice使用groovy脚本来设置数据库连接。它使用请求中传递的信息从数据库中获取相关行。

(以下是试图找出的部分) 3.数据库查询响应中的每一行都是响应中的单独项目。

我想要的一个例子。

请求:

<?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
     <qdiGetPartyFull xmlns="urn:QDIServices">
        <anItem>3328666</anItem>
        <anItem>3328666</anItem>
     </qdiGetPartyFull>
  </soapenv:Body>

响应:

<?xml version="1.0" encoding="utf-8"?>
   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
     <ItemFullResponse xmlns="urn:Services">
        <ItemFullReturn>
           <ItemReponse>
              <country>qwe</country>
              <county>abc</county>
              <postcode>123</postcode>
              <itemError>
                 <errorCode>0</errorCode>
                 <errorMessage xsi:nil="true"/>
              </itemError>
              <status>xyz</status>
           </ItemReponse>
           <ItemReponse>
              <country>qwe</country>
              <county>abc</county>
              <postcode>123</postcode>
              <itemError>
                 <errorCode>0</errorCode>
                 <errorMessage xsi:nil="true"/>
              </itemError>
              <status>xyz</status>
           </ItemReponse>
           <iError xsi:nil="true"/>
        </ItemFullReturn>
    </ItemFullResponse>
  </soapenv:Body>

抱歉格式不佳。

我现在在哪里: 我有数据库连接使用groovy返回行我只需要弄清楚如何将每一行放入一个新的itemResponse。

我还应该提到请求中的项目数=响应中的项目数/行数

1 个答案:

答案 0 :(得分:1)

想出来。

我使用MarkupBuilder生成xml,然后使用上下文将生成的xml写入响应。

可能更好的方法,但这似乎有效。

我完成后会发布代码