J'essaye d'utiliser JsonSlurper pour entrer des variables de différents fichiers. Mais il échoue à la deuxième exécution. Quelqu'un pourrait-il m'aider?Echec de l'exécution de JsonSlurper
Il est à défaut de l'étape Jenkins_File_Path = readFile ("${Local_Path_App}" + "/Jenkinsfile")
Main.groovy
import groovy.json.JsonSlurper
Global_Settings_Path = readFile ("${Main_Local_Path}" + "/Config/GlobalSettings_Java.json")
def jsonSlurper = new JsonSlurper()
def GlobalVariables = jsonSlurper.parseText(Global_Settings_Path)
Jenkins_File_Path = readFile ("${Local_Path_App}" + "/Jenkinsfile")
def jsonSlurper1 = new JsonSlurper()
def json = jsonSlurper1.parseText(Jenkins_File_Path)
GlobalSettings_Java.json
{
"LOB": {
"SVN_Config_Path": "testpath",
"Local_Path_LOB": "test",
}
}
Jenkinsfile
{
"BUILD_INFO": {
"Build_Type" : "Maven",
}
}
journaux d'erreurs
java.io.NotSerializableException: groovy.json.internal.LazyMap à org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:860) à org.jboss.marshalling.river.BlockMarshaller.doWriteObject (BlockMarshaller.java:65) à org.jboss.marshalling.river.BlockMarshaller.writeObject (BlockMarshaller.java:56) à org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride (MarshallerObjectOutputStream.java:50) à org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride (RiverObjectOutputStream.java:179) à java.io.ObjectOutputStream.writeObject (ObjectOutputStream.java:344) à java.util.HashMap.internalWriteEntries (HashMap.java: 1785) à java.util.HashMap.writeObject (HashMap.java:1362) à sun.reflect.GeneratedMethodAccessor469.invoke (Source inconnue) à sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) à java .lang.reflect.Method.invoke (Method.java:498) à org.jboss.marshalling.reflect.SerializableClass.callWriteObject (SerializableClass.java:271) à org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller .java: 976) à org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:854) à org.jboss.marshalling.river.RiverMarshaller.doWriteFields (RiverMarshaller.java:1032) à org.jboss.marshalling.river. RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:988) à org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:854) à org.jboss.marshalling.river.RiverMarshaller.doWriteFields (RiverMarshaller.java:1032) à org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:988) à org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:967) à org.jboss.marshalling.river. RiverMarshaller.doWriteObject (RiverMarshaller.java:854) à org.jboss.marshalling.river.RiverMarshaller.doWriteFields (RiverMarshaller.java:1032) à org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:988) à org.jboss.marshalling.river. RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:967) à org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:854) à org.jboss.marshalling.river.RiverMarshaller.doWriteFields (RiverMarshaller.java:1032) à org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java: 988) à org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:854) à org.jboss.marshalling.river.BlockMarshaller.doWriteObject (BlockMarshaller.java:65) à org.jboss. marshalling.river.BlockMarshaller.writeObject (BlockMarshaller.java:56) à org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride (MarshallerObjectOutputStream.java:50) à org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride (RiverObjectOutputStream.java: 179) à java.io.ObjectOutputStream.writeObject (ObjectOutputStream.java:344) à java.util.TreeMap.writeObject (TreeMap.java:2438) à sun.reflect.GeneratedMethodAccessor475.invoke (Source inconnue) au soleil .reflect.DelegatingMe thodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) à java.lang.reflect.Method.invoke (Method.java:498) à org.jboss.marshalling.reflect.SerializableClass.callWriteObject (SerializableClass.java:271) à org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:976) à org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:854) à org.jboss.marshalling.river.RiverMarshaller. doWriteFields (RiverMarshaller.java:1032) à org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:988) à org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:854) à org.jboss.marshalling.AbstractObjectOutput.writeObject (Résumé bjectOutput.java:58) à org.jboss.marshalling.AbstractMarshaller.writeObject (AbstractMarshaller.java:111) à org.jenkinsci.plugins.workflow.support.pickles.serialization.RiverWriter.writeObject (RiverWriter.java:132) à org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram (CpsThreadGroup.java:433) à org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram (CpsThreadGroup.java:412) à org.jenkinsci. plugins.workflow.cps.CpsThreadGroup.run (CpsThreadGroup.java:357) à org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access $ 100 (CpsThreadGroup.java:78) à org.jenkinsci.plugins.workflow.cps .CpsThreadGroup $ 2.call (CpsThreadGroup.java:236) à org.jenkinsci.plugins.workflow.cps.CpsThreadGroup $ 2.call (CpsThreadGroup.java:224) à org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService 2.call $ (CpsVmExecutorService.java:63) à java.util.concurrent.FutureTask.run (FutureTask.java:266) à hudson.remoting.SingleLaneExecutorService 1 $. run (SingleLaneExecutorService.java:112) à jenkins.util.ContextResettingExecutorService 1.run $ (ContextResettingExecutorService.java:28) à java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) à java.util .concurrent.FutureTask.run (FutureTask.java:266) à java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) à java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) at java.lang.Thread.run (Thread.java:745) causés par: une exception qui se sont produits: dans les locaux de champ en appelant de champ dans le champ e dans le programme de champ dans les discussions sur le terrain dans objet [email protected] Terminé: ÉCHEC
Essayez d'utiliser 'JsonSlurperClassic' à la place. Je trouve que la classe 'LazyMap' que' JsonSlurper' utilise sous la surface est souvent plus difficile que cela en vaut la peine. 'JsonSlurperClassic' utilise un' HashMap' régulier. – BalRog
Merci. Ça a marché. – Eldo
Super. Je vais l'ajouter comme réponse. – BalRog