2016-07-10 53 views
0

工作,我已經得到了下面的代碼HTTP超時支持:org.glassfish.jersey.client.ClientProperties超時不會對WildFly

Client client = ClientBuilder.newClient().register(JacksonJsonProvider.class); 
    client.property(ClientProperties.CONNECT_TIMEOUT, 1000); 
    client.property(ClientProperties.READ_TIMEOUT, 1000); 
    WebTarget target = client.target(url); 
    Response response = target.request(MediaType.APPLICATION_JSON_TYPE).post(null, Response.class); 

它工作正常的獨立Java應用程序。它等待響應1000ms,然後發生java.net.SocketTimeoutException

我需要在WildFly 8.2.0上使用此代碼。問題是,等待1000毫秒後,什麼都沒有發生。此代碼等待無限時間。我猜ClientProperties.CONNECT_TIMEOUTClientProperties.READ_TIMEOUT不適合WildFly。可能我必須使用其他常量。有誰知道這是什麼問題?

回答

2

ClientProperties是球衣特定的類,其屬性是球衣特定的。 Wildfly使用RestEasy作爲其JAX-RS提供者。

您可以配置基本的Apache HttpClient的位置:https://docs.jboss.org/resteasy/docs/3.0.17.Final/userguide/html/RESTEasy_Client_Framework.html

要HttpClient的配置超時:https://www.jayway.com/2009/03/17/configuring-timeout-with-apache-httpclient-40/

+0

謝謝你的答案。我是否必須重寫整個代碼(針對http請求)並更改由於ClientProperties常量而導致的依賴關係? (儘管http請求被正確執行)。看起來有點奇怪:( –

+1

好吧,你正在利用impl的特定行爲,我通常創建一個製作方法並以這種方式連接到客戶端,這樣它只觸及一個點。 –