gpt4 book ai didi

git - 执行 Jenkins Pipeline : Caused: java. io.NotSerializableException : groovy. json.internal.LazyMap 时出现异常

转载 作者:行者123 更新时间:2023-12-04 13:34:12 27 4
gpt4 key购买 nike

我正在尝试创建 Jenkins 管道,它在不同阶段对我的第三方管道进行 http 调用,并根据响应进入下一阶段。下面是我的 Jenkins 文件

 /* groovylint-disable CompileStatic, DuplicateListLiteral, DuplicateMapLiteral, DuplicateNumberLiteral, DuplicateStringLiteral, LineLength, MethodParameterTypeRequired, MethodReturnTypeRequired, NestedBlockDepth, NoDef, SpaceAroundMapEntryColon, UnnecessaryGetter, VariableTypeRequired */
import groovy.json.JsonSlurper
import groovy.json.*

def controlSessionId
def pullRequestId
def deployId
def header = [[name:'authorization', value:'token 653782812637euik1kesmsajmdiou237ue728787']]

def getPullRequests() {
def header = [[name:'authorization', value:'token 653782812637euik1kesmsajmdiou237ue728787']]
def response = httpRequest consoleLogResponseBody: false,
contentType: 'APPLICATION_JSON',
httpMode: 'GET',
url: 'https://thirdpartypipeline.ethos.corp.mycompany.com/v1/myproduct/myservice/pulls' ,
customHeaders: header

/* println('Status: ' + response.status)
println('Content: ' + response.content) */
return response
}

def joinBuildQueue() {
def header = [[name:'authorization', value:'token 653782812637euik1kesmsajmdiou237ue728787']]
def response = httpRequest consoleLogResponseBody: false,
contentType: 'APPLICATION_JSON',
httpMode: 'POST',
url: 'https://thirdpartypipeline.ethos.corp.mycompany.com/v2/myproduct/myservice/queue' ,
customHeaders: header

return response
}

def initDeploy(def controlSessionId, def pullRequestId) {
def header = [[name:'authorization', value:'token 653782812637euik1kesmsajmdiou237ue728787']]
def requestBody = "{\"control_session_id\":${controlSessionId},\"pull_requests\":[${pullRequestId}],\"autoplay\":\"true\"}"

def response = httpRequest consoleLogResponseBody: true,
contentType: 'APPLICATION_JSON',
httpMode: 'POST',
url: 'https://thirdpartypipeline.ethos.corp.mycompany.com/v2/myproduct/myservice/deploys' ,
customHeaders: header,
requestBody: requestBody

return response
}

def getDeployStatus(def deployId) {
def header = [[name:'authorization', value:'token 653782812637euik1kesmsajmdiou237ue728787']]

def response = httpRequest consoleLogResponseBody: false,
contentType: 'APPLICATION_JSON',
httpMode: 'GET',
url: "https://thirdpartypipeline.ethos.corp.mycompany.com/v2/myproduct/myservice/deploys/${deployId}" ,
customHeaders: header

return response
}

def createAndTriggerBuild(def deployId, def environmentId, def stageId, def projectId) {
def header = [[name:'authorization', value:'token 653782812637euik1kesmsajmdiou237ue728787']]
def requestBodyJSON = "{\"environment_id\":${environmentId},\"stage_id\":${stageId},\"projects\":[{\"id\":${projectId}}]}"
def url = "https://thirdpartypipeline.ethos.corp.mycompany.com/v2/myproduct/myservice/deploys/${deployId}/builds"

println("Request Body JSON is " + requestBodyJSON)
def response = httpRequest consoleLogResponseBody: false,
contentType: 'APPLICATION_JSON',
httpMode: 'POST',
url: "https://thirdpartypipeline.ethos.corp.mycompany.com/v2/myproduct/myservice/deploys/${deployId}/builds" ,
customHeaders: header,
requestBody: requestBodyJSON
// def response = sh(returnStdout: true, script: 'curl -X POST ${url} -H "accept: application/json" -H "Content-Type: application/json" -d ${requestBodyJSON}')

println('Status is ' + response)

return response
}

def getPipeLineEnvironmentDetails(def environments, def stateName) {
def environmentDetails = [:]
environments.each { environment ->
if (stateName.equals(environment.name)) {
environmentDetails.environmentId = environment.id
environmentDetails.environmentName = environment.name
environmentDetails.stageId = environment.steps[0].id
environmentDetails.projectId = environment.steps[0].projects[0].id
environmentDetails.status = environment.status
}
}
return environmentDetails
}

def getParsedResponseObject(def response) {
def parser = new JsonSlurper()
return parser.parseText(response.getContent())
}

pipeline {
agent any

stages {
stage('Automate_Moonbeam_Deployment') {
steps {
script {
//fetching the PR from thirdpartypipeline
println('Fetch the valid PR to deploy')
def response = getPullRequests()
def parser = new JsonSlurper()
def pullRequestObject = parser.parseText(response.content)
println('pull requestObject = ' + pullRequestObject)
pullRequestId = pullRequestObject[0].id

if (response.status == 200) {
println('PR with id ' + pullRequestId + ' exist, can proceed for deployment')
}
}
}
}
stage('Proceed_With_Joining_Queue') {
steps {
script {
println('PR Id received from previous step: ' + pullRequestId)
def response = joinBuildQueue()
def parser = new JsonSlurper()
def requestObject = parser.parseText(response.content)
controlSessionId = requestObject.control_session.id

if (response.status == 200) {
println('Control Session Id is ' + controlSessionId + ' can proceed with deploy')
}
}
}
}
stage('Proceed_With_Deploy') {
steps {
script {
println('Control Session Id received from previous step: ' + controlSessionId)
def response = initDeploy(controlSessionId, pullRequestId)
def parser = new JsonSlurper()
def responseObject = parser.parseText(response.getContent())
deployId = responseObject.id
println ('DeployId is ' + deployId)
println ('Deploy Status is is ' + responseObject.status)
println('environmentId is ' + responseObject.environments[0].id)
}
}
}
stage('Get_Deploy_Status') {
steps {
script {
def deployStatusResponse = getDeployStatus(deployId)
println('Deploy Status is ' + deployStatusResponse.getContent())
}
}
}
stage('Proceed_With_Create_And_Trigger_Build') {
steps {
script {
def deployStatusResponse = getParsedResponseObject(getDeployStatus(deployId))
def environmentDetailMap = getPipeLineEnvironmentDetails(deployStatusResponse.environments, 'Build')
println('DeploymentId is ' + deployId + ' :: Environment Id is ' + environmentDetailMap.environmentId + ' :: Environment Name is ' + environmentDetailMap.environmentName
+ ' :: Project Id is ' + environmentDetailMap.projectId + ' :: StageId is ' + environmentDetailMap.stageId)

def response = createAndTriggerBuild(deployId, environmentDetailMap.environmentId, environmentDetailMap.stageId, environmentDetailMap.projectId)


}
}
}
}
}
现在,在创建和触发构建的 Proceed_With_Create_And_Trigger_Build 阶段,我遇到以下异常:
   an exception which occurred:
in field com.cloudbees.groovy.cps.impl.BlockScopeEnv.locals
in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@3035b5d8
in field com.cloudbees.groovy.cps.impl.CallEnv.caller
44
Caused: java.io.NotSerializableException: groovy.json.internal.LazyMap
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:926)
at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)
a
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)
Finished: FAILURE
注意 createAndTriggerBuild 方法正在发起 Http POST 调用,成功后返回状态码 204。
我什至尝试使用 shell curl 命令,仍然遇到同样的问题。我什至提到了 Jenkins Pipeline NotSerializableException: groovy.json.internal.LazyMap ,但我没有得到我遗漏的确切位置。
下面是我的 jenkins 作业的控制台输出:
Started by user myldap@mycompany.com
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /apps/jenkins/latest/workspace/Moonbeam Deploy Test
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Automate_Moonbeam_Deployment)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
Fetch the valid PR to deploy
[Pipeline] httpRequest
HttpMethod: GET
URL: https://thirdpartyPipeline.solution.corp.mycompany.com/v1/csmt-fault-testing/fault-tolerance-demo/pulls
Content-Type: application/json
authorization: *****
Sending request to url: https://thirdpartyPipeline.solution.corp.mycompany.com/v1/csmt-fault-testing/fault-tolerance-demo/pulls
Response Code: HTTP/1.1 200 OK
Success code from [100‥399]
[Pipeline] echo
pull requestObject = [[id:425010, github_id:2115456, number:6, title:Test Deploy: Update README.md, branch_name:master, base_branch_name:master, sha:b06278fdce1a21b2a9cbb85787fc9277096aad92, remote:git@git.corp.mycompany.com:myldap/fault-tolerance-demo.git, created_at:2020-07-30T15:39:23.530Z, updated_at:2020-07-31T05:07:31.074Z, closed:false, sent_at:2020-07-30T15:44:44.000Z, approved_at:2020-07-31T05:07:31.071Z, forced_approver_id:null, repository_id:167771, mergeable:true, acl_comment:null, status:success, latest_statuses:[[status:[id:2557436, pull_request_id:425010, sha:b06278fdce1a21b2a9cbb85787fc9277096aad92, state:success, created_at:2020-07-30T15:44:46.804Z, updated_at:2020-07-30T15:50:59.938Z, sent_at:2020-07-30T15:50:59.000Z, deleted_at:null, context:thirdpartyPipeline-ci/make-ci]]], user:[id:844, username:myldap, email:myldap@mycompany.com, name:Krishna Chandra Soni, avatar:https://git.corp.mycompany.com/avatars/u/9849?, admin:null, created_at:2017-04-28T13:55:35.491Z, updated_at:2020-08-02T10:49:47.542Z, slack_username:null, role:standard, github_id:9849, display_name:hjklhi], repository:[id:167771, name:fault-tolerance-demo, owner:csmt-fault-testing, github_id:298251, service_id:167773, created_at:2020-07-20T07:34:18.888Z, updated_at:2020-07-20T07:34:18.888Z, approval_regex:^(approved|:\+1:|LGTM|:thumbsup:|:white_check_mark:|👍)\s*$, deleted_at:null, multi_merge_allowed:true, min_approvers:1, base_branch:master], approved:true, modifies_pipeline_spec_file:false, reviews:[[user:[id:1jkl223, username:nitkjjain, email:nitkjmnk.jain@mycompany.com, name:Nitesh Jain, avatar:https://git.corp.mycompany.com/avatars/u/15441?, admin:null, created_at:2017-08-31T08:43:02.503Z, updated_at:2020-07-30T13:20:47.319Z, slack_username:nitn, role:standard, github_id:15441, display_name:Nitesjkljklh n], approved:true]], pipeline_file_data:[pipeline_files_modified:[], allowed_to_deploy_pipeline_files:true, reonboarding_required:false, service_spec_errors:[other_errors:[]], deployable_by_user:true]]]
[Pipeline] echo
PR with id 425010 exist, can proceed for deployment
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Proceed_With_Joining_Queue)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
PR Id received from previous step: 425010
[Pipeline] httpRequest
HttpMethod: POST
URL: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/queue
Content-Type: application/json
authorization: *****
Sending request to url: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/queue
Response Code: HTTP/1.1 200 OK
Success code from [100‥399]
[Pipeline] echo
Control Session Id is 394359 can proceed with deploy
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Proceed_With_Deploy)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
Control Session Id received from previous step: 394359
[Pipeline] httpRequest
HttpMethod: POST
URL: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/deploys
Content-Type: application/json
authorization: *****
Sending request to url: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/deploys
Response Code: HTTP/1.1 200 OK
Response:
{"id":447244,"status":"CANDIDATE_CREATING","deploy_candidate":{"head_sha":null},"pull_requests":[{"id":425010,"github_id":2115456,"number":6,"title":"Test Deploy: Update README.md","sha":"b06278fdce1a21b2a9cbb85787fc9277096aad92"}],"current_step":{},"next_deployable_steps":[],"environments":[{"id":667925,"name":"Build","optional":false,"production":false,"single_rollback_allowed":false,"status":"UNSTARTED","steps":[{"id":621647,"name":"default","status":"UNSTARTED","projects":[{"id":1114499,"name":"client-csmt-fault-testing-fault-tolerance-demo-solution-codebuild-artifactory-build","required":true,"title":"build-makefile","avg_build_time":2.9439725,"status":"UNSTARTED","promotable":{"end_values_met":false,"job_status_met":false},"builds":[]}]}]},{"id":667924,"name":"Image Scan","optional":false,"production":false,"single_rollback_allowed":false,"status":"UNSTARTED","steps":[{"id":621646,"name":"default","status":"UNSTARTED","projects":[{"id":1114498,"name":"client-csmt-fault-testing-fault-tolerance-demo-solution-codebuild-aqua-scan","required":true,"title":"image-scan","avg_build_time":65.51788289999999,"status":"UNSTARTED","promotable":{"end_values_met":false,"job_status_met":false},"builds":[]}]}]},{"id":667923,"name":"Dev","optional":false,"production":false,"single_rollback_allowed":false,"status":"UNSTARTED","steps":[{"id":621645,"name":"deploy---Dev","status":"UNSTARTED","projects":[{"id":1114497,"name":"client-csmt-fault-testing-fault-tolerance-demo-solution-lambda-k8s-director","required":true,"title":"deploy-Dev-va6-faulttolerancedemo","avg_build_time":187.452228125,"status":"UNSTARTED","promotable":{"end_values_met":false,"job_status_met":false},"builds":[]}]}]}]}
Success code from [100‥399]
[Pipeline] echo
DeployId is 447244
[Pipeline] echo
Deploy Status is is CANDIDATE_CREATING
[Pipeline] echo
environmentId is 667925
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Get_Deploy_Status)
[Pipeline] script
[Pipeline] {
[Pipeline] httpRequest
HttpMethod: GET
URL: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/deploys/447244
Content-Type: application/json
authorization: *****
Sending request to url: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/deploys/447244
Response Code: HTTP/1.1 200 OK
Success code from [100‥399]
[Pipeline] echo
Deploy Status is {"id":447244,"status":"CANDIDATE_CREATING","deploy_candidate":{"head_sha":null},"pull_requests":[{"id":425010,"github_id":2115456,"number":6,"title":"Test Deploy: Update README.md","sha":"b06278fdce1a21b2a9cbb85787fc9277096aad92"}],"current_step":{},"next_deployable_steps":[],"environments":[{"id":667925,"name":"Build","optional":false,"production":false,"single_rollback_allowed":false,"status":"UNSTARTED","steps":[{"id":621647,"name":"default","status":"UNSTARTED","projects":[{"id":1114499,"name":"client-csmt-fault-testing-fault-tolerance-demo-solution-codebuild-artifactory-build","required":true,"title":"build-makefile","avg_build_time":2.9439725,"status":"UNSTARTED","promotable":{"end_values_met":false,"job_status_met":false},"builds":[]}]}]},{"id":667924,"name":"Image Scan","optional":false,"production":false,"single_rollback_allowed":false,"status":"UNSTARTED","steps":[{"id":621646,"name":"default","status":"UNSTARTED","projects":[{"id":1114498,"name":"client-csmt-fault-testing-fault-tolerance-demo-solution-codebuild-aqua-scan","required":true,"title":"image-scan","avg_build_time":65.51788289999999,"status":"UNSTARTED","promotable":{"end_values_met":false,"job_status_met":false},"builds":[]}]}]},{"id":667923,"name":"Dev","optional":false,"production":false,"single_rollback_allowed":false,"status":"UNSTARTED","steps":[{"id":621645,"name":"deploy---Dev","status":"UNSTARTED","projects":[{"id":1114497,"name":"client-csmt-fault-testing-fault-tolerance-demo-solution-lambda-k8s-director","required":true,"title":"deploy-Dev-va6-faulttolerancedemo","avg_build_time":187.452228125,"status":"UNSTARTED","promotable":{"end_values_met":false,"job_status_met":false},"builds":[]}]}]}]}
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Proceed_With_Create_And_Trigger_Build)
[Pipeline] script
[Pipeline] {
[Pipeline] httpRequest
HttpMethod: GET
URL: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/deploys/447244
Content-Type: application/json
authorization: *****
Sending request to url: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/deploys/447244
Response Code: HTTP/1.1 200 OK
Success code from [100‥399]
[Pipeline] echo
DeploymentId is 447244 :: Environment Id is 667925 :: Environment Name is Build :: Project Id is 1114499 :: StageId is 621647
[Pipeline] echo
Request Body JSON is {"environment_id":667925,"stage_id":621647,"projects":[{"id":1114499}]}
[Pipeline] sh
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
an exception which occurred:
in field com.cloudbees.groovy.cps.impl.BlockScopeEnv.locals
in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@3035b5d8
in field com.cloudbees.groovy.cps.impl.CallEnv.caller
in object com.cloudbees.groovy.cps.impl.FunctionCallEnv@55e62a96
in field com.cloudbees.groovy.cps.impl.ProxyEnv.parent
in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@30fbee31
in field com.cloudbees.groovy.cps.impl.ProxyEnv.parent
in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@30d6811e
in field com.cloudbees.groovy.cps.impl.CallEnv.caller
in object com.cloudbees.groovy.cps.impl.FunctionCallEnv@52ca4cf1
in field com.cloudbees.groovy.cps.Continuable.e
in object com.cloudbees.groovy.cps.Continuable@603018fd
in field org.jenkinsci.plugins.workflow.cps.CpsThread.program
in object org.jenkinsci.plugins.workflow.cps.CpsThread@31121814
in field org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.threads
in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@3ddf4d44
in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@3ddf4d44
Caused: java.io.NotSerializableException: groovy.json.internal.LazyMap
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:926)
at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)
at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56)
at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)
at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344)
at java.util.HashMap.internalWriteEntries(HashMap.java:1793)
at java.util.HashMap.writeObject(HashMap.java:1363)
at sun.reflect.GeneratedMethodAccessor550.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.jboss.marshalling.reflect.JDKSpecific$SerMethods.callWriteObject(JDKSpecific.java:156)
at org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:191)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1028)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)
at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56)
at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)
at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344)
at java.util.concurrent.ConcurrentSkipListMap.writeObject(ConcurrentSkipListMap.java:1437)
at sun.reflect.GeneratedMethodAccessor569.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.jboss.marshalling.reflect.JDKSpecific$SerMethods.callWriteObject(JDKSpecific.java:156)
at org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:191)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1028)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58)
at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111)
at org.jenkinsci.plugins.workflow.support.pickles.serialization.RiverWriter.lambda$writeObject$0(RiverWriter.java:144)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:237)
at org.jenkinsci.plugins.workflow.support.pickles.serialization.RiverWriter.writeObject(RiverWriter.java:143)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram(CpsThreadGroup.java:552)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram(CpsThreadGroup.java:529)
at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgramIfPossible(CpsThreadGroup.java:516)

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)
Finished: FAILURE

最佳答案

使用 JsonSlurperClassic而不是 JsonSlurperJsonSlurperClassic产生一个标准的 java HashMap那是可序列化的。
JsonSlurper生产 LazyMap不可序列化

关于git - 执行 Jenkins Pipeline : Caused: java. io.NotSerializableException : groovy. json.internal.LazyMap 时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63215272/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com