我正在实现一个ContainerResponseFilter
,它将添加超媒体链接到响应。ContainerResponseFilter
中的方法签名为:
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException
不幸的是,
ContainerResponseContext
不允许我设置Response
对象,并且虽然有getLinks()
方法,但没有addLink(Link)
或setLinks(Link...)
方法。我试过了
responseContext.setEntity(Response.ok().links(link).build());
但这导致了一个异常,该异常表明他们可以为
MessageBodyWriter
找到一个ResponseImpl
。也试过了responseContext.getLinks().add(link);
这也不起作用。
有人做过吗?
最佳答案
您应该注入:
@Context HttpServletResponse r;
作为本地字段。所有更改都应在此完成。