Jenkins HttpRequest插件MissingMethodException

时间:2018-01-10 22:50:23

标签: jenkins groovy jenkins-plugins jenkins-pipeline

在我的jenkins管道中,我历来从命令行调用curl来发出http请求,我正在寻求简化它。

我在我的jenkins部署中安装了HttpRequest插件,并且我正在运行一个基本管道来测试它。但是,当我运行我从代码段生成器生成的代码段时,我会收到此异常。

  

groovy.lang.MissingMethodException:没有方法签名:Script1.httpRequest()适用于参数类型:(java.util.LinkedHashMap)值:[[authentication:myJenkinsAuth,url:https://api.github.com/repos/user/repo/commits/123456789/status]]

我使用的代码行是:

def response = httpRequest authentication: 'myJenkinsAuth', contentType: 'APPLICATION_JSON', url: "https://api.github.com/repos/user/repo/commits/${commitSHA}/status"

我使用的HTTP请求插件的版本是1.8.22

我不确定为什么找不到方法定义,据我所知,这正是文档告诉我应该做的,它与为我生成的片段jenkins一致。任何见解将不胜感激。如果我错过任何有用的细节,我可以提供更多信息

修改: 我相信这个正在运行的工作是一个自由式工作,实际的代码是在一个常规的postbuild步骤中运行(在构建后的操作部分)

1 个答案:

答案 0 :(得分:1)

花了我一段时间才意识到我的类似问题是一个范围界定问题。不知道您是否要在静态方法中调用httpRequest,但如果是,请删除静态方法。

MyScript.groovy:

static def myMethod() {
    httpRequest acceptType: 'APPLICATION_JSON',
                url: url,
                <...>
}

成绩错误:

  

groovy.lang.MissingMethodException:方法的无签名:静态    MyScript .httpRequest()适用于参数类型:(java.util.LinkedHashMap)   值:[[<...>

它正在MyScript中寻找httpRequest。糟糕,移除静态效果确实有效。

相关问题