@XmlRootElement to String

时间:2014-05-29 12:45:43

标签: rest xmlhttprequest

我正在使用带有注释@XmlRootElement的类来与某些REST服务进行交互,通常我会根据此对象创建一个javax.ws.rs.client.Entity并将其放在请求体中。 现在其中一个服务不需要正文中的xml对象,但需要xml post参数和xml对象的utf-8编码。 如何获取使用@XmlRootElement注释的对象的“字符串xml版本”以在参数中使用它?

1 个答案:

答案 0 :(得分:6)

使用JAXB Marshaller将对象转换为XML字符串:

JAXBContext context = JAXBContext.newInstance(Something.class);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
StringWriter out = new StringWriter();
marshaller.marshal(something, out);
String xml = out.toString();