首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAVA:在过了这么长时间后中断线程

JAVA:在过了这么长时间后中断线程
EN

Stack Overflow用户
提问于 2011-03-02 01:49:08
回答 4查看 435关注 0票数 1

我目前正在从事一个项目,该项目要求我从互联网上下载一个WSDL文件。

然而,除了我的问题之外,一切都很好……

我使用以下代码:

代码语言:javascript
复制
private Definition getDefinition(String url) throws WSDLException {

    // Read the url and return an instance to a WSDL Definition
    return WSDLFactory.newInstance().newWSDLReader().readWSDL(url);

}

这个WSDLFactory是一个线程(据我所知)。我遇到的问题是,在我提供的URL列表中,有几个指向不再存在的WSDL。这反过来导致我的程序在意识到它应该抛出FileNotFoundException之前等待了非常长的时间。这是因为WSDL应该位于的位置需要永远返回一个HTTP_RESPONSE代码。

有没有一种方法可以将这个WSDLFactory封装到某个东西中,试图获取WSDL,但只给它5-10秒的时间呢?在这之后,它会说“你已经有太多的时间做这件事了。我们正在践踏你”?

EN

回答 4

Stack Overflow用户

发布于 2011-03-02 02:06:45

查看Executor和Futures框架。

票数 2
EN

Stack Overflow用户

发布于 2011-03-02 02:23:09

设置基础套接字的超时,如果可能,socket.setSoTimeout或通过库中的更高级别的配置选项。

否则(如果您在类路径上有Google的芭乐),请尝试:

http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/util/concurrent/TimeLimiter.html

票数 2
EN

Stack Overflow用户

发布于 2011-03-02 02:06:31

您可以尝试设置http超时sun.net.client.defaultConnectTimeout。当然,这取决于WSDLReader的实现

点击这里:networking properties

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5158303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档