0

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

项目的工作方式如下: 1. 应用程序设置为将 xml 请求发送到soap mockservice。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 中。

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

4

1 回答 1

1

弄清楚了。

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

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

完成后将发布代码

于 2013-10-07T14:00:29.157 回答