1

带有表格视图的 Eclipse 插件有时会得到:

java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)

在我的带有 SSD 的台式 PC 上,这种情况只有 10% 的时间会发生,而在我使用普通 HDD 的工作计算机上,这种情况一直都会发生。该视图有一个竞争提供程序,它使用 JDOM2 读入 XML 文件。通过调试,我将错误追溯到以下几行:

SAXBuilder builder = new SAXBuilder(); 
Document doc = builder.build(file);
Element element = doc.getRootElement(); 

它在哪里接收到一个 IOException?我很确定该文件存在,因为插件有时也可以工作。

更新: 仔细检查我编辑了我的 IOExecption:

catch (IOException e) { 
    if(file.length()==0){
        System.out.println("error: the following file could not be found.");
        System.out.println("File:"+file);
    }else
        e.printStackTrace(); 
    }

如果我使用系统上无法访问的文件字符串,则使用 System out,如果文件存在,则执行 printStackTrace。

4

1 回答 1

0

啊,我想通了。SAXBuilder - 通过互联网检查 XML 中的 dtd。

<!DOCTYPE annotation  SYSTEM "http://www.xyz.com/xyz.dtd">

我的工作机器上的问题是代理服务器,家里的那个可能是一些连接超时,所以它有时工作。

我想知道为什么 SAXBuilder 会通过 http 访问 Internet,现在已经很清楚了。

于 2013-01-22T10:35:27.597 回答