Только начал использовать soapUI, и мне это очень нравится.
В конкретном случае использования REST я получаю сериализованный объект.
Хотелось бы:
для получения сериализованного байтового массива и преобразования его в объект Java
преобразование объекта Java в ответ XML (с использованием JAXB) так что это может быть читаемым человеком.
Это возможно?
Обязательно рассмотрите возможность использования XML-сериализации (например, XStream ) вместо двоичной, чтобы избежать проблем совместимости версий , прежде чем использовать следующее решение:
Импортируйте свой класс Java в Groovy-скрипт SoapUI (, как описано там ) или измените класс Java в Groovy-коде с реализованным интерфейсом Serializable:
Serializable
class Person implements Serializable { String name; int age }
Используйте ObjectInputStream и classLoader для загрузки десериализации объектов в объект:
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:
ObjectOutputStream
output = new ByteArrayOutputStream() output.withObjectOutputStream { oos -> oos << yourObject } //save serialized data as byte array output.toByteArray()