JAX-RS:ClientRequestFilter 的非编程注册
JAX-RS: Non-programmatical registration of a ClientRequestFilter
我想使用 ClientRequestFilter 修改我的应用程序的传出 REST 请求而不更改源代码。
到目前为止,我只找到了以编程方式注册过滤器的方法:
Client client = ClientBuilder.newClient();
client.register(new MyClientRequestFilterImpl());
webtarget = client.target(uriBuilder);
是否可以使用 web.xml 或类似的?
据我所知没有这样的方法,但是你可以很容易地自己读取一个配置文件。假设以下文件:
com.foo.bar.Filter1
com.foo.bar.Filter2
您可以像这样注册过滤器:
List<String> filters = Files.readAllLines(Paths.get(new URI("/your/config/file")), Charset.forName("UTF-8"));
Client client = ClientBuilder.newClient();
for (String filter : filters) {
client.register(Class.forName(filter));
}
我想使用 ClientRequestFilter 修改我的应用程序的传出 REST 请求而不更改源代码。
到目前为止,我只找到了以编程方式注册过滤器的方法:
Client client = ClientBuilder.newClient();
client.register(new MyClientRequestFilterImpl());
webtarget = client.target(uriBuilder);
是否可以使用 web.xml 或类似的?
据我所知没有这样的方法,但是你可以很容易地自己读取一个配置文件。假设以下文件:
com.foo.bar.Filter1
com.foo.bar.Filter2
您可以像这样注册过滤器:
List<String> filters = Files.readAllLines(Paths.get(new URI("/your/config/file")), Charset.forName("UTF-8"));
Client client = ClientBuilder.newClient();
for (String filter : filters) {
client.register(Class.forName(filter));
}