我正在Wildfly 15.0.1中测试JAX-RS声明@BeanParam,但是在尝试通过getter方法访问字段值时却获得了NPE。
如果我改用@FormParam,一切正常。在Eclipse调试器中,如果我直接访问该字段(而不是通过getter方法),则该值在那里。但是,如果我尝试通过其getter方法访问该字段值,它将返回null并因此返回NPE。下面是Eclipse调试器的屏幕截图,显示了该字段具有值,但是getter方法返回的是null。
我要执行的操作的代码段:
@RequestScoped
public class TestFilter {
@FormParam("date_fr")
private String dateFr;
...
}
@ApplicationScoped
@Path("/test")
public class TestRes {
@POST
@Path("/search")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response search(@BeanParam TestFilter filter) throws IOException {
if (filter.getDateFr().length() > 0) { // NPE here: filter.getDateFr() is null
}
}
}
有人知道这里的@BeanParam是怎么回事吗?我在做错什么吗?
答案 0 :(得分:0)
罪魁祸首是reduction_packet_type
注释。没有它,它将按预期工作。
有人针对此报告了一个Jira错误:https://issues.jboss.org/browse/WFLY-11680