将@BeanParameter与Jersey一起使用

时间:2015-03-04 14:16:53

标签: java rest get jersey jax-rs

我正在使用JAX-RS创建一个restfull webservice,我已经开始使用Wildfly 8.2和JEE7进行开发,我能够实现这一目标:

端点搜索方法:

@GET
@Path("/consultar")
public Response consultar(
        @QueryParam("offset") @DefaultValue(value = "0") Integer offSet, 
        @QueryParam("limit") @DefaultValue(value = "10") Integer limit, 
        @NotNull @BeanParam EmpresaDTO filtro) {
    return super.consultar(offSet, limit, filtro);
}

端点抽象搜索方法:

@Override
public Response consultar(Integer offSet, Integer limit, @NotNull Object filtro) {
    T filtroMaterializado = mapper.map(filtro, getClassType());
    Example example = getExampleGenerator().generate(filtroMaterializado);
    List<T> lista = getRepository().listar(offSet, limit, example);

    return getOkResponse(lista);
}

多数民众所有人一直在努力迁移到Tomcat,然后我选择Jersey作为我的JAX-RS实现。现在我得到一个很大的错误堆栈跟踪,在服务器启动时跟随此警告:

警告:HTTP GET方法,public javax.ws.rs.core.Response br.com.logtec.delivery.resource.AbstractResource.consultar(java.lang.Integer,java.lang.Integer,java.lang。对象),不应该使用任何实体。

我用谷歌搜索过,我发现了这个:Using @Consume with GET request in Jersey Rest

但我更倾向于使用javax api默认注释@BeanParam,而且没有这样的注释@InjectParam到jersey-container-servlet依赖。

所以我要问的是,有没有办法在@GET方法中使用@BeanParam?如果没有,我怎么能包括@InjectParam而不包括孔glassfish-embedded-web依赖?

1 个答案:

答案 0 :(得分:0)

没关系,我明白了。问题是我的Resource接口抽象方法是由@GET注释的,@ POST ...我把它们撕掉了,然后就解决了。不管怎样,谢谢