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

标签 java web-services jaxb jax-rs

我正在尝试将哈希集嵌入到 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

有人知道我应该怎么做吗? “customizedClass”已被正确注释。

谢谢

最佳答案

您可能应该将集合包装在另一个类似于以下 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 对象。这是通常的方法。

关于java - 如何在java中将哈希集添加到javax.ws.rs.core.Response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32470834/

相关文章:

java - 使用 Hibernate 标准的嵌套集合

java - "Return type of ... is not a subtype of the return type of the overridden member"?

python - 以编程方式为 python 中的 SOAP 端点调用 RPC 方法

java - 在将数据转换为 XML 之前对其进行预处理?

stream - 无缓冲 CXF(无内容长度 header )

jaxb - 如果名称包含 - 则无法使用 JAXB 解析 xml

java - 从正在运行的 java accpilaction 编译 javacode - 在未安装 JDK 的系统上

web-services - 发布网络服务

java - 开发了解用户时区的网络服务

java - Tomcat 仍然不显示目录列表,即使我在 conf/web.xml 中启用它