在我的应用程序中,我有Jersey服务器和Jersey客户端的配置类 服务器的配置是从ResourceConfig扩展的类,我将其应用于web.xml
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>blah.blah.core.jersey.config.JerseyServerConfig</param-value>
</init-param>
客户端的配置是从ClientConfig扩展的类,我在客户端创建期间应用它
Client client = ClientBuilder.newClient(new JerseyClientConfig());
我想要做的是将JerseyClientConfig应用为所有已创建客户端的默认配置(不希望每次构建客户端时都创建配置实例)。
是否可以在web.xml中设置它,就像我对服务器配置一样?
我在官方文档中没有找到任何相关内容。
答案 0 :(得分:1)
您可以为注入Client
/ WebTarget
执行此操作,请查看Managed JAX-RS Client文章以了解具体方法。注入WebTarget
看起来像:
@Path("resource")
public class MyResource {
@Uri("http://example.com")
private WebTarget target;
@GET
public String sayHello() {
return target.request().get(String.class);
}
}
否则,如果您想自己创建一个客户端实例,则只能使用JAX-RS应用程序的配置(因此没有真正的自定义配置):
@Path("resource")
public class MyResource {
@Context
private Configuration config;
@GET
public String sayHello() {
return ClientBuilder
.newBuilder()
.withConfig(config)
.target("http://example.com")
.request().get(String.class);
}
}
注意: 在此用例中,您的客户端将具有服务器端所具有的所有适用配置。