当前位置: 首页 > 知识库问答 >
问题:

在这个Groovy方法中什么是“不可序列化的”?

余善
2023-03-14

我写了以下函数,它被加载到我的管道:

def userTrigger() {
  [$class: 'UsernamePasswordMultiBinding', credentialsId: jenkins_creds, usernameVariable: 'J_USER', passwordVariable: 'J_PASS'],
  ]){
      cmd = "curl -s -u \${J_USER}:\${J_PASS} \${env.BUILD_URL}api/json | python -mjson.tool | grep userId | awk '{print \$2}' | tr -d '"|,' "
      def ut = sh(returnStdout: true, script: cmd)
      return ut
    }
}

结果应该是触发构建的用户名,在清理输出之前,它看起来是这样的:

"userId": "itaig",

基本上,这:

awk -F'"' '{print $4}'

也会给我所需的输出,但我不知道如何在这个语句中转义字符。

当我运行作业时,我得到以下错误:

java.io.NotSerializableException: org.codehaus.groovy.control.ErrorCollector
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860)
    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.doWriteObject(RiverMarshaller.java:854)

我非常确定这与我试图转义相关字符有关,但我有一种感觉,我没有做对,我试图转义cmd行末尾的(“),但没有成功。

你能找到我的问题吗?

共有1个答案

尹兴生
2023-03-14

第3行右括号和右括号的结尾是什么?

]){

这可能更多的是双引号和单引号,而不是字符的转义-确保它们很好地配对。

 类似资料:
  • 当使用Jenkins管道插件时,构建会因java错误而失败。木卫一。NotSerializableException错误,如下所示: 当我使用带有一些导入语句的自定义库时,会发生这种情况。我尝试了几件事情,比如用@NonCPS将调用封装在一个方法中,但是错误仍然存在。 管道脚本 vars/myScript。棒极了 src/com/company/jenkins/utils/LibScript 使用

  • 如果接口只是一个标记接口,用于在 java 中传递有关类的某种元数据 - 我有点困惑: 在阅读了java的序列化算法(元数据从下到上,然后从上到下的实际实例数据)的过程之后,我无法真正理解哪些数据不能通过该算法进行处理。 简而言之: 哪些数据可能导致? 我怎么知道我不应该为我的类添加子句?

  • 问题内容: 如下代码: 引发以下异常: 我猜内部类具有一个允许对其私有访问的字段和方法的字段。声明内部类static 可以解决它,但是如果需要此访问权限怎么办?有没有一种方法可以在不包含封闭类的情况下序列化非静态内部类,例如通过引用外部类? 编辑:例如,仅在序列化之前才需要访问外部类。好的,编译器不知道这一点,但是我认为这就是关键字存在的原因。 问题答案: 如果InnerClass需要此访问权限怎

  • 问题内容: 中的类对什么意味着什么?或者总的来说… 问题答案: 序列化将一个对象从内存持久存储到一系列位中,例如保存到磁盘上。反序列化是相反的-从磁盘读取数据以水合/创建对象。 就您的问题而言,它是一个接口,如果在一个类中实现,则该类可以由不同的序列化程序自动进行序列化和反序列化。

  • 我开始学习面向对象编程(OOP),想知道:在OOP术语中,序列化的含义是什么?

  • 问题内容: 当我将WCF配置为使用jSON序列化并将DataTable包含在我的一个DataContracts中时,它会先将DataTable序列化为XML,然后再将整个DataContract序列化为jSON。我希望将DataTable序列化为jSON,而不是XML。 我的问题是: 为什么首先将DataTable序列化为XML? 我如何才能将其序列化到jSON? 问题答案: DataTable是