2014-01-22 94 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

相關問題