在SOAPUI工具中,为响应任何数据库步骤,响应包含tableName.column。
请参考下图。
如何从响应中删除tableName属性。 我的意思是问,SOAPUI中是否有任何设置,或者我需要更新任何属性文件......
答案 0 :(得分:1)
这不取决于 SOAPUI 的设置,它取决于数据库驱动程序。
我遵循github中的 SOAPUI 代码,我终于发现内部 JDBCTestSteps 根据以下内容从响应中构造 XML 节点名称代码片段:
...
public static Document addResultSetXmlPart(Element resultsElement, ResultSet rs, Document xmlDocumentResult)
throws SQLException {
ResultSetMetaData rsmd = rs.getMetaData();
...
...
String columnName = "";
if (!StringUtils.isNullOrEmpty(rsmd.getTableName(ii))) {
columnName += (rsmd.getTableName(ii)).toUpperCase() + ".";
}
columnName += (rsmd.getColumnName(ii)).toUpperCase();
String value = rs.getString(ii);
Element node = xmlDocumentResult.createElement(StringUtils.createXmlName(columnName));
...
(您可以看到整个方法addResultSetXmlPart
method form XMLUtils
class here)
因此,您可以看到 XML 上的节点名称取决于ResultSetMetaData
getTableName
和getColumnName
方法。此类是一个接口,这些方法的实现取决于特定的DB驱动程序版本。
因此,为了与客户端具有相同的行为,只需检查SOAPUI_HOME\bin\ext
中是否有相同的数据库驱动程序。
备注:您或您的客户更改.jar
重新启动 SOAPUI 中的SOAPUI_HOME\bin\ext
以加载新的
希望这有帮助,
答案 1 :(得分:1)
“ postgresql-9.1-903.jdbc4”应返回没有表名的结果集。我无需将数据库驱动程序放置到SOAPUI_HOME \ bin \ ext中就可以正常工作。