有没有办法将元素列表作为参数传递给使用 Jersey 的方法?
我有一个用 @XmlRootElement
注释的类 Sample
,其中包含以下变量:idUsuario
、x
和 timestamp
。
在我的 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,但它不起作用。
最佳答案
您应该使用类型 List<Medicao>
而不是ArrayList
在 addMedicoes
方法。
这可能是阻止 jersey/jaxb 正确解码您的 xml 查询的原因。
此外,除了 won't work
之外,您还应该发布更多信息,因为仅此而已,我们只能猜测出了什么问题。什么不起作用?您有任何错误消息/日志要显示吗?您具体尝试了什么?
关于java - 如何在 Jersey 中传递元素列表作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10180127/