web-services - 在 RESTEasy JAX-RS 中注入(inject)自定义响应 header

标签 web-services http-headers jax-rs response resteasy

我有 RESTEasy (JAX-RS) 服务器,大约有 60 个服务(到目前为止)。我想使用服务器构建时间自动向提供者调用者注入(inject)自定义响应 header :X-BuildTime: 20100335.1130 .

有没有一种简单的方法可以在不修改我的每项服务的情况下做到这一点?

我正在尝试使用实现 org.jboss.resteasy.spi.interception.PostProcessInterceptor 的类带注释@Provider@ServerInterceptor ,但我不知道如何修改传递给我的 postProcess() 的 ServerResponse方法。

最佳答案

使用 javax.ws.rs.core.Response 怎么样?这样,您可以在创建响应数据的同一位置设置 header 。

@GET
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response test(           ){
    HashMap<String,String> ret = new HashMap<String,String>();
    ret.put("foo","bar");
    return Response
       .status(Response.Status.OK)
       .entity(ret)
       .header("X-say", "Hello world!")
       .build();
}

关于web-services - 在 RESTEasy JAX-RS 中注入(inject)自定义响应 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5434655/

相关文章:

http - http 中的 md5 范围

Java JAX-RS REST 服务客户端代码生成

java - 找不到适用于 jdbc :mysql://localhost/<myDB> 的合适驱动程序

Javascript Web 应用最佳实践

php - 将数据从一个页面发送到另一台服务器。语言不可知论

web-services - 尖锐的 URL 参数

asp.net - ServiceStack - 返回类时为空 json

C# 异步 Web 服务器 - 如何将数据发送到客户端

java - 如果容器身份验证失败,如何修改 Java servlet 响应 header ?

java - @FormParam 不适用于 GET 方法-RestEasy