如何将哈希集添加到 java 中的 javax.ws.rs.core.Response

how to add a Hashset to a javax.ws.rs.core.Response in java

我正在尝试将哈希集嵌入到 javax.ws.rs.core.Response

的实体中

例如:

@GET
@Path("someting...")
@Produces("application/xml")
public Response getStuff( ... ...) {
    Set<customisedClass> stuff = retrieveMethod(xx);
    return Response.ok().entity(stuff).build()

这会给我:

Could not find MessageBodyWriter for response object of type: java.util.HashSet of media type: application/xml

有人知道我该怎么做吗? "customisedClass" 已经被正确注释。

谢谢

您应该将集合包装在另一个 class 中,类似于以下内容 XML:

<employees>
   <employee>
      <name>Gates</name>
   </employee>
   <employee>
      <name>Bill</name>
   </employee>
<employees>

实现这个:

@XmlRootElement(name = "employees")
@XmlAccessorType (XmlAccessType.FIELD)
public class Employees
{
    @XmlElement(name = "employee")
    private Set<Employee> employees = null;

    public Set<Employee> getEmployees() {
        return employees;
    }

    public void setEmployees(Set<Employee> employees) {
        this.employees = employees;
    }
}

然后将 Employees 设置为 Response 对象。这是通常的做法。