Java groovy soapUI反序列化

Java groovy soapUI反序列化,java,unit-testing,groovy,soapui,Java,Unit Testing,Groovy,Soapui,刚开始使用soapUI,我非常喜欢它 在使用REST的特定情况下,我将接收序列化对象 我想: 检索序列化字节数组并将其转换为Java对象 将java对象重新转换为XML响应(使用JAXB) 因此,它可以是人类可读的 这是可行的吗?< P>在使用下一个解决方案之前,一定要考虑使用XML序列化(例如)来代替二进制序列化: 将Java类导入SoapUI groovy脚本(),或在groovy代码中重新定义Java类,并实现Serializable接口: class Person implement

刚开始使用soapUI,我非常喜欢它

在使用REST的特定情况下,我将接收序列化对象

我想:

  • 检索序列化字节数组并将其转换为Java对象

  • 将java对象重新转换为XML响应(使用JAXB) 因此,它可以是人类可读的


这是可行的吗?

< P>在使用下一个解决方案之前,一定要考虑使用XML序列化(例如)来代替二进制序列化:

  • 将Java类导入SoapUI groovy脚本(),或在groovy代码中重新定义Java类,并实现
    Serializable
    接口:

    class Person implements Serializable { String name; int age }
    
  • 使用
    ObjectInputStream
    classLoader
    将反序列化对象加载到对象中:

    // use your byte array variable instead of yourByteArray
    input = new ByteArrayInputStream(yourByteArray)
    // use your object variable instead of yourObject
    yourObject = null
    input.withObjectInputStream(getClass().classLoader){ ois -> yourObject = ois.readObject() }
    
  • 使用
    ObjectOutputStream
    序列化更新的对象并将其保存到XML响应:

    output = new ByteArrayOutputStream()
    output.withObjectOutputStream { oos -> oos << yourObject }
    //save serialized data as byte array
    output.toByteArray()
    
    output=newbytearrayoutputstream()
    output.withObjectOutputStream{oos->oos