2013-06-20 78 views
0

我有一個JAX-WS調用另一個WS(客戶端已經使用JAX-WS構建)。我的目標是設置調用超時。 我知道,我可以使用:在JAX-WS上設置超時(weblogic)

BindingProviderProperties.CONNECT_TIMEOUT 
BindingProviderProperties.REQUEST_TIMEOUT 

public static final java.lang.String CONNECT_TIMEOUT = "com.sun.xml.internal.ws.connect.timeout"; 
public static final java.lang.String REQUEST_TIMEOUT = "com.sun.xml.internal.ws.request.timeout"; 

但這些點了com.sun.xml *類,並根據甲骨文這被認爲是一個非常不好的做法,因爲這些類是未記錄,可能會改變或去除。 。 來源:www.oracle.com/technetwork/java/faq-sun-packages-142232.html

有人可以指出我如何在不違反ORACLE指南的情況下對我的調用設置超時嗎?

+0

也許Oracle應該爲每個規範提供一個標準化的機制,以便我們配置它,而不是僅僅發出警告。最好的辦法是直接在你的ws客戶端可用的'java.net.URLConnection'實例上設置超時值。 – kolossus

+0

@kolossus你能提供給我更多關於這方面的信息嗎?一個例子如果可能? – boom123

+0

我指的是底層的URLConnection對象,服務客戶端存根將最終用來啓動到web服務的HTTP連接。但經過廣泛的研究後,它看起來並不像任何時候都暴露出來。它全部埋在API中(最有可能在'Stub'類中),你將無法訪問它。除此之外,它也在'com.sun.xxx'軟件包中,所以即使您能夠接受它,它也不會解決您的原始需求。 – kolossus

回答