RESTeasy服务输入参数为空

时间:2017-05-22 04:55:39

标签: java web-services rest resteasy

我编写了下面的resteasy服务,并将其余URL中的request参数作为/ {categoryId},并将其作为String categoryID输入到我的方法。

    @Path("/getArticlebyCat/{categoryID}")
    @PermitAll
    @GET
    @Produces("application/json")
    public Response searchArticleByCategoryID(String categoryID) {
        List<Article> articleList = new ArrayList();
        try {
            System.out.println("categoryID>>>"+categoryID);
            articleList = searchService.findArticleByCategoyID(categoryID);
        } catch (Exception e) {
            Logger.getLogger(RestServiceOne.class.getName()).log(Level.SEVERE, null, e);
            e.printStackTrace();
        }
        Response response = Response.status(Response.Status.OK).entity(articleList).build();
        return response;
    }

但是从服务日志中,我没有通过rest call.in传递 categoryID 值。它是空的。请帮我解决这个问题。 先感谢您 !

2 个答案:

答案 0 :(得分:2)

  

@PathParam是一个参数注释,允许您映射变量   URI路径片段进入方法调用。

所以你必须在这里使用@PathParam注释。

@Path("/getArticlebyCat/{categoryID}")
@PermitAll
@GET
@Produces("application/json")
public Response searchArticleByCategoryID(@PathParam("categoryID")String categoryID) {

}

More on Path Params

答案 1 :(得分:1)

你能否发布你的URL,因为我可以看到你要求获取get方法,你应该使用类似@PathParam(String categoryId)的东西。