Ich versuche, JsonSlurper zu verwenden, um Variablen aus verschiedenen Dateien einzugeben. Aber es scheitert bei der zweiten Ausführung. Könnte mir jemand helfen?JsonSlurper Ausführungsfehler
Aus Schritt 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
versagt hat{
"BUILD_INFO": {
"Build_Type" : "Maven",
}
}
Fehlerprotokolle
java.io.NotSerializableException: groovy.json.internal.LazyMap bei org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:860) bei org.jboss.marshalling.river.BlockMarshaller.doWriteObject (BlockMarshaller.java:65) bei org.jboss.marshalling.river.BlockMarshaller.writeObject (BlockMarshaller.java:56) bei org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride (MarshallerObjectOutputStream.java:50) bei org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride (RiverObjectOutputStream.java:179) bei java.io.ObjectOutputStream.writeObject (ObjectOutputStream.java:344) bei java.util.HashMap.internalWriteEntries (HashMap.java: 1785) bei java.util.HashMap.writeObject (HashMap.java:1362) bei sun.reflect.GeneratedMethodAccessor469.invoke (Unknown Source) bei sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) auf Java .lang.reflect.Method.invoke (Methode.java:498) bei org.jboss.marshalling.reflect.SerializableClass.callWriteObject (SerializableClass.java:271) bei org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller .java: 976) bei org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:854) bei org.jboss.marshalling.river.RiverMarshaller.doWriteFields (RiverMarshaller.java:1032) bei org.jboss.marshalling.river. RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:988) bei org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:854) bei org.jboss.marshalling.river.RiverMarshaller.doWriteFields (RiverMarshaller.java:1032) bei org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:988) bei org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:967) bei org.jboss.marshalling.river. RiverMarshaller.doWriteObject (RiverMarshaller.java:854) at org.jboss.marshalling.river.RiverMarshaller.doWriteFields (RiverMarshaller.java:1032) bei org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:988) bei org.jboss.marshalling.river. RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:967) bei org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:854) bei org.jboss.marshalling.river.RiverMarshaller.doWriteFields (RiverMarshaller.java:1032) bei org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller.Java: 988) bei org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:854) bei org.jboss.marshalling.river.BlockMarshaller.doWriteObject (BlockMarshaller.java:65) bei org.jboss. marshalling.river.BlockMarshaller.writeObject (BlockMarshaller.java:56) bei org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride (MarshallerObjectOutputStream.java:50) bei org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride (RiverObjectOutputStream.java: 179) bei java.io.ObjectOutputStream.writeObject (ObjectOutputStream.java:344) bei java.util.TreeMap.writeObject (TreeMap.java:2438) bei sun.reflect.GeneratedMethodAccessor475.invoke (Unknown Source) bei Sonne .reflect.DelegatingMe thodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) bei java.lang.reflect.Method.invoke (Method.java:498) bei org.jboss.marshalling.reflect.SerializableClass.callWriteObject (SerializableClass.java:271) bei org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:976) bei org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:854) bei org.jboss.marshalling.river.RiverMarshaller. doWriteFields (RiverMarshaller.java:1032) bei org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject (RiverMarshaller.java:988) bei org.jboss.marshalling.river.RiverMarshaller.doWriteObject (RiverMarshaller.java:854) bei org.jboss.marshalling.AbstractObjectOutput.writeObject (AbstractO bjectOutput.java:58) bei org.jboss.marshalling.AbstractMarshaller.writeObject (AbstractMarshaller.java:111) bei org.jenkinsci.plugins.workflow.support.pickles.serialization.RiverWriter.writeObject (RiverWriter.java:132) bei org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram (CpsThreadGroup.java:433) bei org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram (CpsThreadGroup.java:412) bei org.jenkinsci. plugins.workflow.cps.CpsThreadGroup.run (CpsThreadGroup.java:357) bei org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access $ 100 (CpsThreadGroup.java:78) bei org.jenkinsci.plugins.workflow.cps .CpsThreadGroup $ 2.call (CpsThreadGroup.java:236) bei org.jenkinsci.plugins.workflow.cps.CpsThreadGroup $ 2.call (CpsThreadGroup.java:224) bei org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService $ 2.call (CpsVmExecutorService.java:63) bei java.util.concurrent.FutureTask.run (FutureTask.java:266) bei 1 hudson.remoting.SingleLaneExecutorService $. laufen (SingleLaneExecutorService.java:112) bei jenkins.util.ContextResettingExecutorService $ 1.run (ContextResettingExecutorService.java:28) bei java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) bei java.util .concurrent.FutureTask.run (FutureTask.java:266) bei java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) bei java.lang.Thread.run (Thread.java:745) Verursacht durch: eine Ausnahme, die aufgetreten: im Feld Einheimischer im Feld Anrufer im Feld e in Feldprogramm in Feld Threads in Objekt [email protected] Abschluss: AUSFALL
Versuchen Sie stattdessen, 'JsonSlurperClassic' zu verwenden. Ich finde, dass die 'LazyMap'-Klasse, die' JsonSlurper' unter der Oberfläche verwendet, oft mehr Probleme verursacht, als es wert ist. 'JsonSlurperClassic' verwendet eine normale' HashMap'. – BalRog
Danke. Es funktionierte. – Eldo
Großartig. Ich füge es als Antwort hinzu. – BalRog