1

我正在使用 JAX-RS 1.0。服务器在处理请求之前验证是否存在自定义 HTTP 标头。

我想为 JAX-RS 客户端创建某种类似于 AOP 的行为,它会自动将 HTTP 标头添加到每个请求中。

JAX-RS 1.0 是否支持出站客户端拦截器?我在文档中找不到任何提及。另一种方法是我编写一个特定于 CXF 的出站拦截器......谢谢!

4

3 回答 3

1

使用 JAX-RS 1.0 没有很好的方法来做到这一点。我使用了 CXF 拦截器。

于 2012-09-28T19:55:39.620 回答
1

你可以写一个@PreMatching 拦截器

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.container.PreMatching;
import java.io.IOException;

@PreMatching
public class ContentTypeFilter implements ContainerRequestFilter {

    @Override
    public void filter(ContainerRequestContext requestContext)
            throws IOException {

        requestContext.getHeaders().putSingle("Content-Type", "application/json");
    }
}
于 2016-02-01T08:50:34.980 回答
0

嗯,JAX-RS 是一个 API,所以应该能够为它提供你自己的实现。如何实现javax.ws.rs.client.ClientFactoryjavax.ws.rs.client.ClientgetClient(). 只要您的类与您正在使用的 JAX-RS 实现不冲突,就应该可以正常工作。

于 2012-09-25T11:16:26.793 回答