注意: 尽管此答案有效,但anar的答案更好。
您应该尝试使用带JAXB注释的类来解决您的问题。您可以将方法更改为此:
@GET@Produces(MediaType.TEXT_XML)@Path("/directgroups")public Groups getDirectGroupsForUser(@PathParam("userId") String userId) { try { Groups groups = new Groups(); groups.getGroup().addAll(service.getDirectGroupsForUser(userId, null, true)); return groups; } catch (UserServiceException e) { LOGGER.error(e); throw new RuntimeException(e.getMessage()); }}然后为您的组创建一个带有JAXB注释的类。我已经使用此答案中描述的过程为您提供了一个生成的类。这是它将产生的文档的示例:
<groups> <group>Group1</group> </group>Group2</group></groups>
这是生成的类:
package example;import java.util.ArrayList;import java.util.List;import javax.xml.bind.annotation.XmlAccessType;import javax.xml.bind.annotation.XmlAccessorType;import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;import javax.xml.bind.annotation.XmlType;@XmlAccessorType(XmlAccessType.FIELD)@XmlType(name = "", propOrder = { "group"})@XmlRootElement(name = "groups")public class Groups { @XmlElement(required = true) protected List<String> group; public List<String> getGroup() { if (group == null) { group = new ArrayList<String>(); } return this.group; }}


