2013-06-20 62 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

回答