尝试使用Groovy

时间:2017-03-01 17:53:06

标签: groovy

尝试在项目级别设置属性时遇到以下问题。

  

没有方法签名:com.eviware.soapui.impl.wsdl.WsdlProject.setPropertyValue()适用于参数类型:(java.lang.String,java.math.BigDecimal)值:[TitleId,1]可能解决方案:setPropertyValue(java.lang.String,java.lang.String),getPropertyValue(java.lang.String)

当我第一次使用'rs'设置项目属性时代码有效,但是第二次它拒绝存储它并返回上面的错误消息。

条件查询如下:

if (rs !=null) {

log.info ("Result " + (rs[0])) 
project.setPropertyValue("TitleId", rs[0]); //this works
}

else {

def cdsTitle = "SELECT TITLE_TYPE, TITLE_TEXT FROM PARTY WHERE PARTY_KEY ='" + context.expand('${#Project#PartyKey}') + "'";
def titleType= sqlCDS.firstRow(cdsTitle)

project.setPropertyValue("TitleId", titleType[0]); //This is the statement which causes the error message
} 

'titleType'返回两个值,我试图将它设置为第一个,因此'[0]'。我试图将此值存储在自己的变量中并使用它来设置属性,但是仍然会出现相同的错误消息。

def cdsTitle = "SELECT TITLE_TYPE, TITLE_TEXT FROM PARTY WHERE PARTY_KEY ='" + context.expand('${#Project#PartyKey}') + "'";
def titleType= sqlCDS.firstRow(cdsTitle)

def ttype = titleType[0]; //returns 1

project.setPropertyValue("TitleId", ttype;) 
}

非常感谢任何帮助。感谢

2 个答案:

答案 0 :(得分:0)

它认为rs[0](作为第二个参数)具有正确的类型并且(正如你所写的)它已被接受。

然后程序沿着 else 路径并使用titleType[0] 作为第二个论点。

你确定它的类型相同吗?

仔细查看错误消息:

No signature of method: ... is applicable for argument types:
(java.lang.String, java.math.BigDecimal) values: [TitleId, 1]

以上消息说:

  • 第一个参数是TitleId(我假设一个字符串,它已被接受),
  • 第二个参数是1(值为1的 BigDecimal )并且可能存在 这种类型有问题。

也许你应该将它转换为另一种类型?

答案 1 :(得分:0)

titleType [0] .toString()似乎解决了问题