Jersey @HeaderParam在POST中为null

时间:2015-10-20 17:42:10

标签: java rest http jersey jetty

我在POST的资源中收到NULL @HeaderParam。但是,身份验证过滤器会在呼叫到达资源之前拦截呼叫,并成功提取标头信息。相同的标题信息。在资源中结果为空。

它在构造函数中失败并抛出NullPointerException。

资源类代码:

@Path("/profile")
@Consumes(MediaType.APPLICATION_JSON)
public class UserAccountEP {

    @HeaderParam("userId")
    public String userId;

    public UserAccountEP()
    {
        if(userId==null)
            throw new NullPointerException("UserId is null");
    }


    @POST
    @Path("/action")
    public void action(String ip) throws IOException {}

}

有人可以看看我做错了吗?

感谢。

1 个答案:

答案 0 :(得分:1)

注入发生在构造类之后,因此您无法在构造函数中访问注入的值。

使用@PostConstruct注释回调方法,如下所示。

@PostConstruct
private void validate() {
    ....
}