【发布时间】:2014-01-27 15:18:19
【问题描述】:
在我的 web 服务(使用 RestEasy)项目中,我依赖于一个 jar。我从那个 jar 中使用了一个 java 类:Person。
我的问题是我需要将 Person 实例序列化为 XML,但我收到以下错误:
unable to marshal type "entities.Person" as an element because it is missing an @XmlRootElement annotation
但是,我无法更改 Person 类以添加注释 @XmlRootElement(它是第三方 jar)。
是否有任何其他方式(方法、库等)将 Person 实例编组为 XML 而无需注释 Person 类?
顺便说一句,这是我使用的代码,但由于缺少注释而失败:
String result;
Person person = personManager.findByPersonId(personId);
StringWriter sw = new StringWriter();
JAXBContext personContext = JAXBContext.newInstance(Person.class);
Marshaller personMarshaller = personContext.createMarshaller();
personMarshaller.marshal(person, sw);
result = sw.toString();
return Response.status(200).entity(result).build();
非常感谢。
【问题讨论】:
-
谢谢,你给我的链接很有用,但我想知道这个 EclipseLink 库是否可以安全地集成到商业产品(许可证)中......
-
作者之一,Blaise,应该很快就会回答这个和那个。
标签: java xml jaxb marshalling