I want to convert an output stream into String object
I want to convert an OutputStream
into a String
object. I am having an OutputStream
object returned after marshalling the JAXB object.
not very familiar with jaxb, from what i was able to find you can convert into a string using
public String asString(JAXBContext pContext,
Object pObject)
throws
JAXBException {
java.io.StringWriter sw = new StringWriter();
Marshaller marshaller = pContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
marshaller.marshal(pObject, sw);
return sw.toString();
}
ws.apache.org
but I'm not sure about a stirng object. still searching.
** EDIT
Marshalling a non-element
Another common use case is where you have an object that doesn't have @XmlRootElement on it. JAXB allows you to marshal it like this:
marshaller.marshal( new JAXBElement(
new QName("","rootTag"),Point.class,new Point(...)));This puts the element as the root element, followed by the contents of the object, then . You can actually use it with a class that has @XmlRootElement, and that simply renames the root element name.
At the first glance the second Point.class parameter may look redundant, but it's actually necessary to determine if the marshaller will produce (infamous) @xsi:type. In this example, both the class and the instance are Point, so you won't see @xsi:type. But if they are different, you'll see it.
This can be also used to marshal a simple object, like String or an integer.
marshaller.marshal( new JAXBElement(
new QName("","rootTag"),String.class,"foo bar"));But unfortunately it cannot be used to marshal objects like List or Map, as they aren't handled as the first-class citizen in the JAXB world.
found HERE
StringWriter sw = new StringWriter();
com.integra.xml.Integracao integracao = new Integracao();
integracao.add(...);
try {
JAXBContext context = JAXBContext.newInstance("com.integra.xml");
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(integracao, sw );
System.out.println(sw.toString());
} catch (JAXBException e) {
e.printStackTrace();
}