2
剛開始使用soapUI,我非常喜歡它。groovy soapUI反序列化
在使用REST的特定情況下,我正在接收序列化對象。
我想:
檢索串行化字節數組,並將其轉換到Java對象
重新變換java對象爲XML響應(使用JAXB) 所以它可以是人類可讀的。
這可行嗎?
剛開始使用soapUI,我非常喜歡它。groovy soapUI反序列化
在使用REST的特定情況下,我正在接收序列化對象。
我想:
檢索串行化字節數組,並將其轉換到Java對象
重新變換java對象爲XML響應(使用JAXB) 所以它可以是人類可讀的。
這可行嗎?
一定要考慮使用XML序列化(如XStream),而不是二進制一個避免version compatibility problems使用下一個解決方案之前:
導入您的Java類來了SoapUI Groovy腳本(as described there)或重新定義在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()