首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins pipeline java.io.NotSerializableException: groovy.util.slurpersupport.NodeChildren

Jenkins pipeline java.io.NotSerializableException: groovy.util.slurpersupport.NodeChildren
EN

Stack Overflow用户
提问于 2017-04-24 12:27:11
回答 1查看 1.6K关注 0票数 1

我试图从Jenkinsfile (使用Groovy代码)运行Pipeline作业,但得到以下错误-

代码语言:javascript
复制
java.io.NotSerializableException: groovy.util.slurpersupport.NodeChildren
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:778)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1032)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:988)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:967)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:854)
    at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)
    at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56)
    at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)
    at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344)
    at java.util.HashMap.internalWriteEntries(HashMap.java:1777)
    at java.util.HashMap.writeObject(HashMap.java:1354)
    at sun.reflect.GeneratedMethodAccessor101.invoke(Unknown Source)
...

我尝试执行的代码是-

代码语言:javascript
复制
def getDataVersionFromNexus() {
    def user = params.nexusUser
    def password = params.nexusPassword    
    ...

    def oldVersion = -1
    print output
    if (!output.isEmpty()) {        
        def xmlContent = new XmlSlurper().parseText(output)
        oldVersion = "${xmlContent.versioning.release}"
    }

    return oldVersion
}

我尝试将该方法注释为@NonCPS (正如在类似的SO post中所建议的那样),但是我没有得到正确的输出。

EN

回答 1

Stack Overflow用户

发布于 2017-05-18 22:33:05

尝试将此值作为list复制到ArrayList,然后使用。例如,如下所示:

代码语言:javascript
复制
tmp = xmlContent.versioning.release.toList()
list = new ArrayList()
for (i = 0; i != tmp.size(); i += 1) {
    list.add(tmp.get(i))
}
oldVersion = list.get(0)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43579814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档