Вирішено : Завдяки нижченаведеній відповіді С.Річмонда. Мені потрібно було зняти всі збережені карти того groovy.json.internal.LazyMap
типу, що означало анулювання змінних envServers
та object
після використання.
Додатково : Люди, які шукають цю помилку, можуть зацікавитись скористатися readJSON
натомість кроком конвеєра Дженкінса - знайдіть більше інформації тут .
Я намагаюся використовувати конвеєр Jenkins, щоб взяти введення від користувача, яке передається на роботу як рядок json. Потім трубопровід аналізує це, використовуючи шланг, і я вибираю важливу інформацію. Потім він буде використовувати цю інформацію для запуску 1 завдання кілька разів паралельно з різними параметрами завдання.
Поки я не додам код нижче, "## Error when below here is added"
сценарій буде працювати нормально. Навіть код нижче цієї точки буде працювати самостійно. Але в поєднанні я отримую нижченаведену помилку.
Слід зазначити, що спрацьоване завдання викликається і працює успішно, але виникає нижченаведена помилка і не вдається виконати основне завдання. Через це основна робота не чекає повернення спрацьованої роботи. Я міг би спробувати / зловити, build job:
однак я хочу, щоб основна робота дочекалася завершення запущеної роботи.
Хтось може тут допомогти? Якщо вам більше потрібна інформація, повідомте мене.
Ура
def slurpJSON() {
return new groovy.json.JsonSlurper().parseText(BUILD_CHOICES);
}
node {
stage 'Prepare';
echo 'Loading choices as build properties';
def object = slurpJSON();
def serverChoices = [];
def serverChoicesStr = '';
for (env in object) {
envName = env.name;
envServers = env.servers;
for (server in envServers) {
if (server.Select) {
serverChoicesStr += server.Server;
serverChoicesStr += ',';
}
}
}
serverChoicesStr = serverChoicesStr[0..-2];
println("Server choices: " + serverChoicesStr);
## Error when below here is added
stage 'Jobs'
build job: 'Dummy Start App', parameters: [[$class: 'StringParameterValue', name: 'SERVER_NAME', value: 'TestServer'], [$class: 'StringParameterValue', name: 'SERVER_DOMAIN', value: 'domain.uk'], [$class: 'StringParameterValue', name: 'APP', value: 'application1']]
}
Помилка:
java.io.NotSerializableException: groovy.json.internal.LazyMap
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:569)
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(Unknown Source)
at java.util.LinkedHashMap.internalWriteEntries(Unknown Source)
at java.util.HashMap.writeObject(Unknown Source)
...
...
Caused by: an exception which occurred:
in field delegate
in field closures
in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@5288c