程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了参数化远程触发器抛出 405 异常大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决参数化远程触发器抛出 405 异常?

开发过程中遇到参数化远程触发器抛出 405 异常的问题如何解决?下面主要结合日常开发的经验,给出你关于参数化远程触发器抛出 405 异常的解决方法建议,希望对你解决参数化远程触发器抛出 405 异常有所启发或帮助;

我正在尝试从另一个作业 B 远程触发作业 A(这被配置为远程触发器),并且作业 B 需要保持直到结果返回以显示成功或失败,我最初尝试使用 curl 命令使用 rest API ,它完美地工作。这是 curl 代码:

curl -v -X POST 'https://xxx.xxx/xxx-xxx/job/xxx/job/master/builDWithParameters?config_files=./jenkins/unit-tests.Json' --user xxxx:110f4dfa33ba8f8ef5d8d299beb6aa1543

我选择安装在 jenkins 服务器上的参数化插件代码,因为它在内部处理轮询机制并且还具有处理程序友好的方法。请参阅下面的 remoteJob 代码,但它因 405 错误而失败,这意味着 http 语言中不允许使用该方法,看起来插件正在使用 GET方法而不是post。我添加了一个日志记录选项,但它似乎没有显示更多日志。

def handle = @R_772_10296@gerRemoteJob( remotejenkinsname: 'remote-master',工作:'https://xxx.xxx.com/xxx-xxx/job/xxx/job/master/builDWithParameters', remotejenkinsUrl: 'https://xxx.xxx.xxx/xxx-xxx/job/xxx/job/master/builDWithParameters',身份验证:TokenAuth(APIToken:hudson.util.Secret.fromString('110f4dfa33ba8f8ef5d8d299beb6aa1543'),用户名:'xxxx'), 参数:'config_files=./jenkins/unit-tests')

我收到以下错误 -

[Pipeline] @R_772_10296@gerRemoteJob ############################################### ######################## 参数化远程触发配置: - 工作:https://xxx.xxx.xxx/xxx-xxx/job/xxx/job/master/buildWithParameters - 远程詹金斯网址:https://xxx.xxx.xxx/xxx-xxx/job/ius/job/master/buildWithParameters - auth: 'Token Authentication' 作为用户 'sseri' - 参数:[config_files=./jenkins/unit-tests] - blockBuildUntilComplete: 真 - 连接重试限制:5 - trustAllCertificates:假 ############################################### ######################## 与远程服务器的连接失败 [405],等待重试 - 下一次尝试前 10 秒。网址:https://xxx.xxx.xxx/xxx-xxx/job/xxx/job/master/buildWithParameters/api/json,参数: 重试第 1 次(共 5 次)

请在这方面帮助我!

解决方法

我不确定您使用的插件,但是在没有任何插件的情况下实现“从上游调用下游作业并在下游失败时上游失败”的场景非常简单。

看看我下面的例子。

假设您有两个名为 jobA 和 jobB 的作业,您的目标是从 jobA 调用 jobB 并在 jobB 失败时使 jobA 失败。

**jobA 的脚本管道 **

node() {
  try {
    def jobB = build(job: jobName,parameters: [String(name:"parameterName",value: "parameterValue")])
    def jobBStatus = jobB.getResult()

    if(jobBStatus == "failed") {
      throw new RuntimeException("Downstream job-b failed with reason ...");
    }
    ...
  }catch(Exception E) {
    throw e
  }
}

jobA 的声明式管道

pipeline {
  agent any;
  stages {
    stage('call jobB') {
       steps {
           script {
               def jobB = build(job: jobName,parameters: [
                   String(name:"parameterName",value: "parameterValue")
               ])
               def jobBStatus = jobB.getResult()

               if(jobBStatus == "failed") {
                 error("Downstream job-b failed with reason ...")
               }
           }
       }
    }
  }
}

,

尝试使用此 Parameterized-Remote-@R_772_10296@ger-Plugin。它应该给你你想要的。我在使用身份验证令牌和使用 jenkinsfile 的用户配置它时遇到了一些问题,但如果您使用的是 GUI,我相信您会完成工作。

大佬总结

以上是大佬教程为你收集整理的参数化远程触发器抛出 405 异常全部内容,希望文章能够帮你解决参数化远程触发器抛出 405 异常所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:405异常