Groovy 无法对null对象调用方法getNodeName()
我正在使用scriptler jenkins插件执行简单的groovy脚本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
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”。因此,我假设您没有在构建期间运行脚本,没有在执行器线程中运行脚本,或者您没有正确配置。无论如何,这将是一个詹金斯的问题,我不太了解。