我可以使用web.xml设置Jersey客户端的配置

时间:2014-01-22 08:16:01

标签: java java-ee jersey jax-rs web.xml

在我的应用程序中,我有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中设置它,就像我对服务器配置一样? 我在官方文档中没有找到任何相关内容。

1 个答案:

答案 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);
    }
}

注意: 在此用例中,您的客户端将具有服务器端所具有的所有适用配置。