gpt4 book ai didi

java - 使用 axis1.4 不考虑超时

转载 作者:行者123 更新时间:2023-11-30 11:50:55 25 4
gpt4 key购买 nike

我在初始化 Web 服务 stub 时设置超时,我什至在调用之前使用 getTimeout() 记录它以确保它已设置,但无论设置的超时值如何,调用都会完成。这可能是一个错误还是我在这里遗漏了什么?

下面是我的代码:

proxy = new DCPControllerWSPortTypeProxy();
proxy.setEndpoint(endpoint);
((Stub)proxy.getDCPControllerWSPortType()).setTimeout(120000);

最佳答案

要解决此问题,您必须在项目中的任意位置添加以下类。当我遇到类似的问题时,我在实例化我的 stub 的同一个类中将其声明为私有(private)类。 (我目前正在使用 Axis 2)

private class CustomNetworkClient extends sun.net.NetworkClient
{

public CustomNetworkClient(int readTimeout)
{
defaultSoTimeout = readTimeout;

}

}

完成后,您可以在代码中添加以下行,这将设置超时。

CustomNetworkClient client = new CustomNetworkClient(SOAP_READ_TIMEOUT);

或者您可以简单地执行以下操作,因为您并不真正需要正在创建的对象:

new CustomNetworkClient(SOAP_READ_TIMEOUT)

这之前已被报告为错误,其中在使用 HTTPS 连接时未设置连接超时和读取超时:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4700777

以下链接帮助我找到了解决方法: http://www.noizeramp.com/article.php?article=se-networking_specifics_under_Java_Web_Start

我希望这能以某种方式帮助你 =)

关于java - 使用 axis1.4 不考虑超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7715339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com