Comment réparer NotSerializableException erreur lors de Jenkins workflow de build?
Lorsque j'exécute le code suivant sur le flux de travail de Jenkins (Jenkins 1.609.1 ,flux de travail 1.8) j'obtiens l'erreur de "NotSerializableException' (ci-dessous).
Cependant, si je déplace le "travail" de l'extérieur "pour le" scope, il fonctionne très bien (le travail est activé). Des idées pourquoi ce comportement?
node('master') {
ws('/opt/test) {
def file = "/ot.property"
def line = readFile (file)
def resultList = line.tokenize()
for(item in resultList )
{
build job: 'testjob_1'
}
}
}
A reçu l'erreur:
Running: End of Workflow
java.io.NotSerializableException: java.util.ArrayList$Itr
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
.....
Pour moi j'ai trouvé la meilleure et la plus simple solution ici: stackoverflow.com/a/40166064/1929406
OriginalL'auteur oTolev | 2015-07-27
Vous devez vous connecter pour publier un commentaire.
Je thnk c'est parce qu'il essaie de sérialiser les unserializable
item
itérateur surresultList
dès qu'elle touche lebuild job
étape. Voir ici pour des conseils sur l'utilisation de nonserializable variables:https://github.com/jenkinsci/workflow-plugin/blob/master/TUTORIAL.md#serialization-of-local-variables
Comme une solution de contournement en toute sécurité effectuer une itération à l'aide de workflow plugin, vous avez besoin pour nous de style C boucles. Essayez plutôt ceci:
tnx, semble mieux maintenant!
Pour info, cette erreur est suivie comme JENKINS-27421.
OriginalL'auteur Brian Ray
Selon CloudBees Plate-forme de page d'Aide:
De sorte que vous devez transformer votre code dans une fonction avec
@NonCPS
méthode d'assistance.Liées Jenkins bug: JENKINS-27421.
Chose importante à garder à l'esprit ici: vous ne pouvez pas exécuter pipeline étapes à partir d'un @NonCPS méthode! groups.google.com/forum/#!topic/jenkinsci-utilisateurs/VXrSVBZ2maU
OriginalL'auteur kenorb