getter 方法的 Wildfly 15.0.1 JAX-RS @BeanParam NPE
Wildfly 15.0.1 JAX-RS @BeanParam NPE for getter methods
我正在 Wildfly 15.0.1 中测试 JAX-RS annoration @BeanParam,但在尝试通过 getter 方法访问字段值时出现 NPE。
如果我改用@FormParam,一切正常。在 Eclipse 调试器中,如果我直接访问该字段(不是通过 getter 方法),该值就在那里。但是,如果我尝试通过其 getter 方法访问字段值,它 returns 为 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 是怎么回事吗?我做错了什么吗?
罪魁祸首是 @RequestScoped
注释。没有它,它会按预期工作。
有人报告了一个针对此的 Jira 错误:https://issues.jboss.org/browse/WFLY-11680
我正在 Wildfly 15.0.1 中测试 JAX-RS annoration @BeanParam,但在尝试通过 getter 方法访问字段值时出现 NPE。
如果我改用@FormParam,一切正常。在 Eclipse 调试器中,如果我直接访问该字段(不是通过 getter 方法),该值就在那里。但是,如果我尝试通过其 getter 方法访问字段值,它 returns 为 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 是怎么回事吗?我做错了什么吗?
罪魁祸首是 @RequestScoped
注释。没有它,它会按预期工作。
有人报告了一个针对此的 Jira 错误:https://issues.jboss.org/browse/WFLY-11680