我正在尝试使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。
我还应该提到请求中的项目数=响应中的项目数/行数
答案 0 :(得分:1)
想出来。
我使用MarkupBuilder生成xml,然后使用上下文将生成的xml写入响应。
可能更好的方法,但这似乎有效。
我完成后会发布代码