jenkins - 如何在没有 java.io.NotSerializableExceptions 的情况下将 Jenkins HTTP 请求插件与 Jenkins 凭据一起使用?
问题描述
我正在尝试将 Jenkins HTTP 请求插件(版本 1.8.27)与凭据插件一起使用进行身份验证。
def result = httpRequest url: "https://url-to-query",
acceptType: 'APPLICATION_JSON',
authentication: 'credentialId', #replaced with actual credentialId
consoleLogResponseBody: false,
ignoreSslErrors: true
但我得到:
java.io.NotSerializableException: io.jenkins.plugins.credentials.secretsmanager.factory.CredentialsFactory$SecretSupplier
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at hudson.remoting.UserRequest._serialize(UserRequest.java:263)
at hudson.remoting.UserRequest.serialize(UserRequest.java:272)
Caused: java.io.IOException: Unable to serialize jenkins.plugins.http_request.HttpRequestExecution@5e7cb2fb
at hudson.remoting.UserRequest.serialize(UserRequest.java:274)
at hudson.remoting.UserRequest.<init>(UserRequest.java:101)
at hudson.remoting.Channel.call(Channel.java:999)
at jenkins.plugins.http_request.HttpRequestStep$Execution.run(HttpRequestStep.java:353)
at jenkins.plugins.http_request.HttpRequestStep$Execution.run(HttpRequestStep.java:331)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
at hudson.security.ACL.impersonate2(ACL.java:449)
at hudson.security.ACL.impersonate(ACL.java:461)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
从我读到的关于 NonSerializableException 的内容来看,这意味着 Jenkins 无法正确保存作业的状态,因为这不是针对该对象实现的?我正在使用 Jenkins 插件,所以我不确定我可能做错了什么。
解决方案
推荐阅读
- c++ - 将字符串作为输入并将其拆分为单词的函数。标点符号应该被忽略
- javascript - 您将如何创建一个自动昵称系统,每个新成员的昵称数量都会增加?
- angular - 需要帮助:Angular 路由器和导航项目不起作用
- java - 自 Wildfly 15 以来,Arquillian 托管测试不再有效
- javascript - 如何使用 react-big-calendar 获取时间段的时间?
- javascript - 使用来自 AJAX 调用的动态 HTML 重新渲染 Vue 组件
- vba - 如何让 Shapes.HasTitle 找到演示文稿中的所有标题(VBA、.ppt)?
- firebase - Firestore 增量浮点问题
- sql - SQL - 如果数据不可用,则获取默认 NULL 值
- javascript - 如何在 jQuery 中通过销毁和再次绘制来重绘 DataTables