Если вы используете привязку данных Axis2, то автоматически созданные классы для ваших веб-служб будут подклассами ADBBean. Вы можете использовать что-то вроде следующего, чтобы преобразовать ADBBean в строку, а затем зарегистрировать строку.
public static String
writeADBBean(ADBBean aBean) throws XMLStreamException {
if (null == aBean)
return "null";
OMElement omElement;
try
{
// The preferred way of serializing objects generated by Axis2's
// WSDL2JAVA involves methods that are named the same on every
// class but that aren't inherited from any base class. So, use
// reflection to find them.
QName qname;
try {
Field qnameField = aBean.getClass().getField("MY_QNAME");
qname = (QName)qnameField.get(aBean);
} catch (Exception e) {
// Some Axis2-generated objects don't have QNames. Supply
// one based on the object's class.
qname = new QName(aBean.getClass().getCanonicalName());
}
Method getOMElement = aBean.getClass().getMethod("getOMElement", QName.class, OMFactory.class);
omElement = (OMElement)getOMElement.invoke(aBean, qname, OMAbstractFactory.getOMFactory());
} catch (Exception e) {
log.warn("Reflection failed for " + aBean.toString() + ": " + e.toString());
throw new XMLStreamException("Cannot serialize " + aBean.toString(), e);
} catch (NoClassDefFoundError e) {
log.error("NoClassDefFoundError while serializing " + aBean.toString() + ": " + e.toString());
throw new XMLStreamException("Cannot serialize " + aBean.toString(), e);
}
String serialized = omElement.toStringWithConsume();
return serialized;
}