如何在Jersey中传递元素列表作为参数?

时间:2012-04-16 19:08:41

标签: java jersey

有没有办法将元素列表作为参数传递给使用Jersey的方法?

我使用Sample注释了@XmlRootElement课程,其中包含以下变量:idUsuarioxtimestamp

在我的MedicaoResource课程中,方法:

@GET
@Produces("text/xml")
public List<Medicao> getMedicoes() {
    return new ArrayList<Medicao>(getAllMedicoes());
}

返回类似的内容:

<medicaoes>
    <medicao>
        <idUsuario>1</idUsuario>
        <timestamp>2012-04-16T12:25:00.454-03:00</timestamp>
        <x>0.71</x>
    </medicao>
    <medicao>
        <idUsuario>1</idUsuario>
        <timestamp>2012-04-16T12:25:00.454-03:00</timestamp>
        <x>1.71</x>
    </medicao>
</medicaoes>

现在,我想做类似的事情:

@POST
@Consumes(MediaType.APPLICATION_XML)
@Produces("text/plain")
public String addMedicoes(ArrayList<Medicao> medicoes) {
    for (Medicao medicao : medicoes) {
        addMedicao(medicao);
    }
    return "success";
}

我如何编写上述方法的XML才能正常工作?我尝试传递方法getMedicoes返回的相同XML,但它不起作用。

1 个答案:

答案 0 :(得分:1)

您应该在List<Medicao>方法中使用ArrayList类型而不是addMedicoes。 这可能是防止jersey / jaxb正确解组你的xml查询的原因。

此外,您应该发布除won't work之外的更多信息,因为只有这样,我们才能猜出错误。什么不起作用?您是否有任何错误消息/日志显示。你究竟尝试了什么?