我在Jenkins文件中有以下内容,我试图从XML文件中获取一些文本...
pipeline {
agent any
stages {
stage('Start') {
steps {
echo 'Build start'
script {
def xml = readFile "${env.WORKSPACE}/config.xml"
def xmlContents = new XmlParser().parseText(xml)
def text = xmlContents.text()
echo 'contents are...'
echo text
}
}
}
.....
这会导致以下异常
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use method groovy.util.XmlParser parseText java.lang.String
at org.jenkinsci.plugins.scriptsecurity.sandbox.whitelists.StaticWhitelist.rejectMethod(StaticWhitelist.java:262)
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:161)
at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:156)
at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:160)
at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17)
at WorkflowScript.run(WorkflowScript:9)
根据here发布的针对该问题的解决方案,我需要进入并设置In-process Script Approval
,但是我已经做了几次。
另外,在其他地方,我也看到了禁用沙箱模式的注释,但是我没有其他屏幕截图所示的此选项...
也许情况发生了变化。
所以,我的问题是,如果不能使用XMLParser,如何读取XML文件的内容?或者如何使用XMLParser?
在此先感谢您的帮助!
答案 0 :(得分:0)
此后,我发现您只需要一次一次批准每个单独的方法(包括构造函数)即可。也就是说,您可以批准一个,然后得到下一个错误。
我没有注意到它们需要不同的批准。