Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy 无法对null对象调用方法getNodeName()_Groovy_Jenkins_Jenkins Scriptler - Fatal编程技术网

Groovy 无法对null对象调用方法getNodeName()

Groovy 无法对null对象调用方法getNodeName(),groovy,jenkins,jenkins-scriptler,Groovy,Jenkins,Jenkins Scriptler,我正在使用scriptler jenkins插件执行简单的groovy脚本 import hudson.model.Computer import hudson.model.Node println Computer.currentComputer().getNodeName() 如果我在主机或任何从机上执行此操作,则会给我NullPointerException java.lang.NullPointerException: Cannot invoke method getNodeName

我正在使用scriptler jenkins插件执行简单的groovy脚本

import hudson.model.Computer
import hudson.model.Node

println Computer.currentComputer().getNodeName()
如果我在主机或任何从机上执行此操作,则会给我NullPointerException

java.lang.NullPointerException: Cannot invoke method getNodeName() on null object
        at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:77)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
        at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:32)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)

不确定脚本有什么问题。

您发布的代码只能在“执行系统Groovy脚本”中的specyfic作业中执行(它在作业配置中)。

java.lang.NullPointerException:无法在null对象上调用方法getNodeName()
表示
Computer.currentComputer().getNodeName()
Computer.currentComputer()返回空值。为什么会这样?没有足够的信息回答此问题

猜测它不在执行器线程上。我使用了scriptler插件。当我在job on master中执行上述脚本时,获取此异常-failed-groovy.lang.MissingMethodException:没有方法签名:hudson.model.hudson$MasterComputer.getNodeName()适用于参数类型:()值:[]我应该在脚本中做什么更改,以便获取当前正在运行的作业的节点名。您的脚本正常。请参阅:“获取生成正在运行的当前计算机。此方法仅在生成期间(例如由发布者、BuildWrapper等)调用时有效。返回:与Executor.currentExecutor()关联的计算机,或者(从1.591开始一致)如果不在Executor线程上,则返回null”。因此,我假设您没有在构建期间运行脚本,没有在执行器线程中运行脚本,或者您没有正确配置。无论如何,这将是一个詹金斯的问题,我不太了解。