@XmlRootElement to String

Cat*_*one 3 rest xmlhttprequest

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

lef*_*loh 7

使用JAXB Marshaller将对象转换为XML-String:

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();
Run Code Online (Sandbox Code Playgroud)