如何在Wildfly 12服务器中的standalone.xml中配置ETag响应标头?

时间:2018-09-17 07:43:58

标签: java java-ee jboss wildfly-12

我想在每个响应中添加etag属性。我已经在响应中添加了variable-header和一个cache-control标头(max-age = 600,公共),但是我没有找到任何在响应中添加etag的解决方案。有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

ETag标头只是一个附加标头,就像您已经添加的缓存控制标头一样。看看下面的示例代码,该示例代码在JAX-RS资源中生成ETag头:

@GET
@Path("/yourResource/{id}")
public Response getPerson(@PathParam("id") String name, @Context Request request){
    CacheControl cc = new CacheControl();
    cc.setMaxAge(86400);

    Response.ResponseBuilder rb = null;

    EntityTag etag = new EntityTag(someService.getById(id).hashCode()+"");

    responseBuilder = req.evaluatePreconditions(etag);

    if (responseBuilder != null) {
       return responseBuilder.cacheControl(cc).tag(etag).build();
    }

    responseBuilder = Response.ok(UserDatabase.getUserById(id)).cacheControl(cc).tag(etag);
    return responseBuilder .build();
}