Groovy 2.4.3を使用してJenkinsの非システムGroovyスクリプトから実行している次のコードがあります
private void readJsonFile() {
if (testsValid == false) {
def jsonSlurper = new JsonSlurper()
try {
println "FileReader("+jsonFileName+")"
def fr = new FileReader(jsonFileName)
println "About to slurp from FileReader "+fr
println "Class: " + fr.getClass()
tests = jsonSlurper.parse(fr)
} catch (FileNotFoundException e) {
println "Properties File Not Found: "+jsonFileName
e.printStackTrace()
} catch (IllegalArgumentException e) {
println "Illegal Argument: " + e.getCause()
e.printStackTrace()
}
}
}
しかし、実行すると、次の例外が発生します。
FileReader(/var/lib/jenkins/workspace/2TierUtmsLog2/resources/utmsdata.json)
About to slurp from FileReader java.io.FileReader@125d92c
Class: class java.io.FileReader
Caught: java.lang.IllegalArgumentException: argument type mismatch
java.lang.IllegalArgumentException: argument type mismatch
at JenkinsJsonTestDao.readJsonFile(JenkinsJsonTestDao.groovy:82)
at JenkinsJsonTestDao.readJenkinsUtmsTest(JenkinsJsonTestDao.groovy:51)
at JenkinsTestDaoIf$readJenkinsUtmsTest.call(Unknown Source)
at JenkinsTestLogger.logTestResult(JenkinsTestLogger.groovy:32)
at JenkinsTestLoggerIf$logTestResult.call(Unknown Source)
at JenkinsLog.logTest(JenkinsLog.groovy:76)
at JenkinsLog$logTest.call(Unknown Source)
at JenkinsLog.main(JenkinsLog.groovy:44)
Build step 'Execute Groovy script' marked build as failure
JsonSlurper.parse(Reader r) メソッドは Reader を使用するため、これが機能しない理由がわかりません。JsonSlurper.parse(String s) メソッドも使用してみましたが、同じエラーが発生します。FileReader を介して読み取った内容も印刷しましたが、正しいです。
誰かが私が間違っていることを見つけることができますか、それともこれは私が直面している別のジェンキンスの制限ですか.
要求された情報を追加しました:
jsonSlurper: groovy.json.JsonSlurper@19e733e
Print of new File(...)
{ "job": [
{
"jenkins_name": "ForceAResult-fail",
"utmsEnabled": "1",
"utmsCycleId": "1",
"utmsProejct": "Unity",
"utmsTeam": "CA-SS System Software",
"utmsTestName": "Force_a_test",
"utmsTestPlanId": "2",
"utmsTestSetId": "3",
},
{
"jenkins_name": "ForceAResult-pass",
"utmsEnabled": "1",
"utmsCycleId": "1",
"utmsProejct": "Unity",
"utmsTeam": "CA-SS System Software",
"utmsTestName": "Force_a_test",
"utmsTestPlanId": "2",
"utmsTestSetId": "3",
}
]}
Uncaught Exception: java.lang.IllegalArgumentException: argument type mismatch
org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.IllegalArgumentException: argument type mismatch
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:92)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:2699)
Diveshの情報を追加
[EnvInject] - ノード環境変数をロードしています。ワークスペース /var/lib/jenkins/workspace/Groovy バージョン システムのマスター上に構築 Groovy バージョン: 1.8.9 パス: /var/lib/ccache/bin:/c4shares/auto/tools/bin:/usr/local/bin: /usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/accurev/bin:/opt/CmTools/shbin:/re/bin:/re/thirdparty_tools /java/tags/linux/Production/bin:/opt/pegasus/bin:/re/thirdparty_tools/ant/tags/Production/bin:/c4shares/auto/devutils/bin:/usr/lib/mit/bin:/ usr/lib/mit/sbin:/usr/NX/bin
GROOVY_HOME: null
[Groovy バージョン] $ /var/lib/jenkins/tools/hudson.plugins.groovy.GroovyInstallation/Groovy_2.4.3/bin/groovy "/var/lib/jenkins/workspace/Groovy バージョン/hudson6179818785298037506.groovy" 2015 年 9 月 24 日8:11:25 AM org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule newModule 警告: モジュール [groovy-nio] - 拡張クラス [org.codehaus.groovy.runtime.NioGroovyMethods] を読み込めません Groovy スクリプトを実行します - 非システム
Divesh の要求の開始:
public java.lang.Object groovy.json.JsonSlurper.parse(byte[])
public java.lang.Object groovy.json.JsonSlurper.parse(char[])
public java.lang.Object groovy.json.JsonSlurper.parse(java.io.File)
public java.lang.Object groovy.json.JsonSlurper.parse(java.io.InputStream)
public java.lang.Object groovy.json.JsonSlurper.parse(java.io.Reader)
public java.lang.Object groovy.json.JsonSlurper.parse(java.net.URL)
public java.lang.Object groovy.json.JsonSlurper.parse(byte[],java.lang.String)
public java.lang.Object groovy.json.JsonSlurper.parse(java.io.File,java.lang.String)
public java.lang.Object groovy.json.JsonSlurper.parse(java.io.InputStream,java.lang.String)
public java.lang.Object groovy.json.JsonSlurper.parse(java.net.URL,java.lang.String)
public java.lang.Object groovy.json.JsonSlurper.parse(java.net.URL,java.util.Map)
public java.lang.Object groovy.json.JsonSlurper.parse(java.util.Map,java.net.URL)
public java.lang.Object groovy.json.JsonSlurper.parse(java.net.URL,java.util.Map,java.lang.String)
public java.lang.Object groovy.json.JsonSlurper.parse(java.util.Map,java.net.URL,java.lang.String)
public java.lang.Object groovy.json.JsonSlurper.parseText(java.lang.String)Finished: SUCCESS