没有方法签名:适用于Groovy中的参数类型错误
发布时间:2020-12-14 16:30:02 所属栏目:大数据 来源:网络整理
导读:在运行以下方法时,我对groovy很新,并且遇到以下错误.我正在尝试传递xml文件名和Map RD.groovy Given(~'^input currency "([^"]*)"$') { String baseCurr - fromCurr = baseCurr}When(~'^insert end Currency "([^"]*)"$') { String tragetCurr - toCurr = tr
在运行以下方法时,我对groovy很新,并且遇到以下错误.我正在尝试传递xml文件名和Map
RD.groovy Given(~'^input currency "([^"]*)"$') { String baseCurr -> fromCurr = baseCurr } When(~'^insert end Currency "([^"]*)"$') { String tragetCurr -> toCurr = tragetCurr } Then(~'^get the expected end currency value "([^"]*)"$') { String result -> assert result == currCon(fromCurr,toCurr) } private currCon(fromCurr,toCurr) { def binding = ["fromCurr": fromCurr,"toCurr": toCurr] response = Consumer.currConvert("request/CurrencyConvert.xml",binding) --> This is line 119 assert 200 == response.status return response.data.ConversionRateResult.toString() } ClassA.groovy package abc.api.member import abc.util.Log import abc.util.TemplateUtil import groovyx.net.http.ContentType import abc.api.RestClient class ClassA extends ClassB{ ClassA(RestClient restClient) { super(restClient) } def currConvert(String xmlFilename,Map binding) { return currencyConvertRequest(TemplateUtil.xmlFromTemplate(xmlFilename,binding)) } def currencyConvertRequest(xmlString) { def params = [path : 'CurrencyConvertor.asmx',headers: globeHeaders(),body: xmlString] return restClient.post(params) } Consumer.Groovy package abc.api.member import geb.Browser import org.apache.http.client.utils.URIBuilder import abc.api.RestClient import abc.browser.member.Admin class Consumer { Browser browser String token String userId @Delegate private ClassA classA Consumer(url) { browser = new Browser() browser.baseUrl = baseUrl(url) restClient = new RestClient(url) classA = new ClassA(restClient) } private baseUrl(url) { URI uri = URI.create(url) URIBuilder builder = new URIBuilder() URI result =builder.setHost(uri.host). // setPath(uri.path). // setPort(uri.port). // setScheme(uri.scheme). setUserInfo("Cons","pbiCons").build() return result.toURL().toString() } 错误: groovy.lang.MissingMethodException: No signature of method: abc.api.consumer.Consumer.currConvert() is applicable for argument types: (org.codehaus.groovy.runtime.GStringImpl,java.util.LinkedHashMap) values: [request/globe/CurrencyConvert.xml,[fromCurr:AUD,...]] at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:51) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at RD.currCon(RD.groovy:119) 在搜索问题后,结果证明这是一个常见问题.虽然想不出来.因为所有解决方案都是主观的. 只是好奇我做错了 谢谢 解决方法
currConvert是一个实例方法,但它被调用就好像它是一个静态方法.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |