我的服务应该收到List<Object>
,在我的情况下,FaturamentoDTO ...例如:
@GET
@Path(value="/teste")
@Produces(MediaType.APPLICATION_JSON)
public List<FaturamentoDTO> teste(@QueryParam("list") final List<FaturamentoDTO> listFatsDTO) {
for (FaturamentoDTO f : listFatsDTO) {
// do my stuff...
}
return listFatsDTO;
}
所以我的问题是,如何发送和接收值。
JAX-RS规范说:
支持以下类型:
1原始类型
2具有接受单个String参数的构造函数的类型。
3具有名为valueOf且带有单个String参数的静态方法的类型。
4 List,Set或SortedSet,其中T满足上面的2或3。
但即使使用构造函数,我也无法获得值。
答案 0 :(得分:0)
如果您要发送除简单字符串以外的任何内容,我建议您使用具有相应请求正文的POST。但是必须有GET才能实现。
您的客户如何发送请求? 您的客户应发送与以下内容相对应的请求:
获取http://example.com/services/teste?list=item1&list=item2&list=item3
答案 1 :(得分:0)
查询参数对复杂数据结构没有任何特定支持,因此您需要自己实现。我面对类似的事情,最后使用数据的JSON表示作为查询参数值。例如(请注意,JSON应该是URL编码的,但我将其留下以使其可读)
http://service?item={"foo" : "value1", "bar" : "value2"}&item={"foo" : "value3", "bar" : "value4"}
然后你可以写一个ParamConverter<T>
来将JSON解组到你的FaturamentoDTO中。我正在使用JAXB / MOXy,但这可以使用您选择的JSON处理库来完成。