当前位置: 首页 > 知识库问答 >
问题:

resteasy:如何在resteasy服务api中使用Map作为QueryParam

唐啸
2023-03-14

嗨,我正在使用resteasy api,我需要使用Map作为QueryParam。我可以使用list作为QueryParam,但是当我尝试传递Map时,我得到了下面提到的错误。

这是我的服务代码

@GET
@Path("/movies")
@Produces(MediaType.APPLICATION_JSON)
public SolrDocumentList getPropertiesByKeyword1(@QueryParam("filterMap") final Map<String,String> list)
 {}

共有1个答案

池照
2023-03-14

注入的值将不是映射。使用映射时,您建议将有不同的键,而实际上只有一个“filter”。因此,您可以使用列表 而不是映射

@Path("list")
public class QueryParamMapResource {

    @GET
    public Response getQueryParams(@QueryParam("filter") List<String> params) {
        StringBuilder builder = new StringBuilder("Filter Params: ");
        for (String value : params) {
            builder.append(value).append(",");
        }
        return Response.ok(builder.toString()).build();
    }
}

C:\>curl“http://localhost:8080/test/rest/list?filter=hello&filter=world”
结果:筛选参数:hello,world,

另一种选择是从uriinfo获取所有查询参数(似乎没有必要,只是显示选项:-)

@GET
public Response getQueryParams(@Context UriInfo uriInfo) {
    MultivaluedMap<String, String> queryMap = uriInfo.getQueryParameters();
    StringBuilder builder = new StringBuilder("Filter Params: ");
    List<String> params = queryMap.get("filter");
    for (String value : params) {
        builder.append(value).append(",");
    }
    return Response.ok(builder.toString()).build();
}

querymap中,您可以尝试通过键获取查询参数values,它将返回该键的值列表

 类似资料:
  • 问题内容: 标题说说我的问题。我需要将DTO包装到javascript方法回调中。目前,我应要求返回JSON。但是在Ajax中使用此问题,因为我将GET发送到其他域。当然还有治安警察。 我有创建附加提供的想法。有任何示例,链接或建议如何执行。 问题答案: RESTEasy中没有明确支持JSONP,但是在应用程序中启用JSONP的一种简单方法是编写Servlet过滤器。 这里有一些链接可以帮助您编写

  • 我正在使用RESTEasy与Spring MVC的集成,如“39.2.Spring MVC集成”一节http://docs.jboss.org/RESTEasy/docs/2.0.0.ga/userguide/html/resteasy_spring_integration.html所述 我想试验一下Resteasy对“异步作业服务”的实现,如下所述:http://docs.jboss.org/r

  • JBoss RESTEasy 是一个用来使用Java语言开发 RESTFul Web服务的框架。 RESTEasy 项目是 JAX-RS 的一个实现,集成的一些亮点: 不需要配置文件,只要把JARs文件放到类路径里面,添加 @Path 注解就可以了。 完全的把 RESTEeasy 配置作为Seam 组件来看待。 HTTP 请求由Seam来提供,不需要一个额外的Servlet。 Resources

  • 我正在将我的应用程序升级到JBoss 7.1.1,现在将使用RestEasy。我在让RestEasy工作时遇到问题。我收到错误HTTP状态404-找不到相对的资源。我相信这意味着它找不到正确的endpoint。我怀疑扫描和注册服务存在一些问题。但我可能错了。注意:我没有使用Maven 这是我网站的一部分。与RestEasy相关的xml: 以下是我正在使用的示例资源: 我尝试过的url是:http:

  • 问题内容: 我必须将我们的j2ee应用程序与REST Web服务集成在一起。我想使用JBoss的RestEasy JAX- RS实现。Web服务返回JSON格式的数组。我有这段代码: 我可以将此“响应”对象映射到使用RestEasy吗?谢谢 问题答案: 如果您的JSON提供程序能够转换为适当的实体,那么可以。您在代码中调用的方法具有重载的版本,该版本接受将结果转换为的实体类。由于序列化某些集合的实

  • 根据我的理解,如果应用程序服务器本身由于负载过大而无法响应,用户将得到500个错误代码,因此在这种情况下,请求本身将无法到达目的地。请就我的理解提出意见。