如何全局设置我的 JEE REST 客户端 headers?

How to set globally my JEE REST client headers?

有什么方法可以全局设置我的 REST headers? 我尝试结合一些 JAX-RS 技巧但没有效果。

我所有的 REST 服务都有这些注释:

@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")

@Consumes(MediaType.APPLICATION_JSON + ";charset=utf-8")

最后我只想完成 headers:

Accept:[application/json]
Content-Type:[application/json;charset=utf-8]

...不接触 REST 类,仅通过配置。 有什么简单的方法可以做到这一点吗?

是的,您可以轻松做到这一点。创建一个 BaseResource class 并在您为端点创建 类 的任何地方扩展它。

public abstract BaseResource {
    @HeaderParam("username")
    private String username;

    @HeaderParam("user-ip")
    private String userIp;
    public String getUserAccount () {
        return userAccount;
    }

    public final String getUserIP() {
        return userIp;
    }
}

使用这些方法,您可以轻松访问 header 值。

好的,没有外界的帮助所以我做到了:)

我使用 javax.servlet.http 中的 HttpServletResponseWrapper 来设置 headers。

我还使用了 javax.servlet 中的 FilterChain 以确保不要让任何其他想法 knock-knock :)