2014-01-22 63 views
1

在我的应用程序中,我有Jersey服务器和Jersey客户端的配置类。
配置服务器是从ResourceConfig扩展的类,和我一起web.xml中应用它我可以使用web.xml设置Jersey客户端的配置

<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

你可以这样做注射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); 
    } 
} 

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

+0

最后一个是我所追求的。谢谢。 – mkrakhin

相关问题