我已经使用JAXWS-RI
2.1为基于WSDL的Web服务创建了一个接口。我可以与Web服务进行交互,没有问题,但是无法指定将请求发送到Web服务的超时时间。如果由于某种原因它没有响应,则客户似乎永远旋转它的轮子。
到处搜寻表明我可能应该尝试执行以下操作:
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.ws.connect.timeout", 10000);
我还发现,根据您拥有的JAXWS-RI版本,您可能需要设置以下属性:
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.internal.ws.request.timeout", 10000);
((BindingProvider)myInterface).getRequestContext().put("com.sun.xml.internal.ws.connect.timeout", 10000);
我的问题是,无论以上哪一项是正确的,我都不知道 在哪里
可以做到这一点。我所拥有的只是一个Service
子类,该子类实现了自动生成的Web服务接口,并且当实例化时,如果WSDL没有响应,那么设置属性已经为时已晚:
MyWebServiceSoap soap;
MyWebService service = new MyWebService("http://www.google.com");
soap = service.getMyWebServiceSoap();
soap.sendRequestToMyWebService();
谁能指出我正确的方向?
我知道这很古老,可以在其他地方回答,但希望这可以解决这个问题。我不确定为什么要动态下载WSDL,但不确定系统属性:
sun.net.client.defaultConnectTimeout (default: -1 (forever))
sun.net.client.defaultReadTimeout (default: -1 (forever))
应该适用于所有读取,并使用JAX-WS使用的HttpURLConnection进行连接。如果从远程位置获取WSDL,这应该可以解决您的问题-
但本地磁盘上的文件可能更好!
接下来,如果要为特定服务设置超时,则在创建代理后,需要将其强制转换为BindingProvider(您已经知道),获取请求上下文并设置属性。在线JAX-
WS文档是错误的,这些是正确的属性名称(嗯,它们对我有用)。
MyInterface myInterface = new MyInterfaceService().getMyInterfaceSOAP();
Map<String, Object> requestContext = ((BindingProvider)myInterface).getRequestContext();
requestContext.put(BindingProviderProperties.REQUEST_TIMEOUT, 3000); // Timeout in millis
requestContext.put(BindingProviderProperties.CONNECT_TIMEOUT, 1000); // Timeout in millis
myInterface.callMyRemoteMethodWith(myParameter);
当然,这是一种可怕的处理方式,我将创建一个不错的工厂来生产这些绑定提供程序,并可以在所需的超时时间内注入这些绑定提供程序。
问题内容: 我编写了简单的REST Web服务客户端类,该类使用JAX-RS 2.0客户端API发出REST请求。我试图弄清楚如何为每个调用设置请求超时。这是请求的代码: 问题答案: 为此,您可以先创建一个ClientConfig,然后在创建新客户端时将其作为参数提供。
我们能以编程方式获取HTTPClientPolicy对象吗?或者我们必须在传递给template.send()的Camel URI中引用它,例如:
问题内容: 我正在Java中使用 Apache Commons-Net 库 我想要的是使用Java代码在客户端阶段设置FTP服务器的连接超时 例如: 如果我查看FTP服务器的vsftpd.conf设置文件, 有一个设置 我想知道FTP客户端是否可以使用Java代码控制此空闲超时 我尝试了以下方法,但并非所有方法都有效 请帮我 :) 问题答案: FTP客户端无法控制FTP服务器的设置。 但是您要问的
当我尝试使用套接字将物理设备连接到服务器时,我遇到了一个问题。在服务器端,它似乎不接受任何连接,而在客户端,套接字超时。你知道为什么会这样吗? 我在下面提供我的代码 服务器代码: 客户端: 11-16 23:32:11.016:W/系统。错误(24213):java.net。ConnectException:无法连接到/192.168.1.116(端口9090):连接失败:ETIMEDOUT(连接
问题内容: 因此,已经有一个必须在控制台上运行的Python程序设置了。我将使用Javascript为应用程序构建Web GUI界面。我将如何: 一种。开始处理此Python程序的输入/输出,而无需触摸原始代码。 b。通过Javascript调用将控制台输入发送到Python程序。我已经研究了原始的HTTP请求/ AJAX,但不确定如何将其作为输入发送到Python程序。 问题答案: 一种。处理程