在UnknownHostException的情况下启动时出现空错误对话框

时间:2010-10-05 08:29:01

标签: java java-web-start

当我使用JNLP启动富客户端应用程序时,它会向远程服务器发出一些请求。其中一些请求旨在检查服务器是否可用。如果它们不可用,则客户端会捕获,例如UnknownHostException,这是一个完全有效且预期的情况。

但是,如果我在Java控制面板中指定代理设置(Windows->开始 - >设置 - >控制面板 - > Java),我会在启动时收到以下错误对话框:

alt text

正如您所看到的,此对话框完全没用,并且无法找出问题所在。此外,我尝试将Java控制台中的跟踪级别设置为5,但它也没有向我提供任何有用的信息。

此对话框与启动应用程序中捕获的异常一起出现。在HttpClient实例(commons-httpclient-3.1)抛出后,我立即重复它被捕获,并且该对话框不会被应用程序显示(此外它有完全不同的look'n'feel )。 以下是代码引用:

    try {
        HttpClient client = new HttpClient(connectionManager);
        GetMethod getMethod = new GetMethod();
        getMethod.setPath(targetUrl.getPath());
        HostConfiguration hostConfiguration = getHostConfiguration();
        client.executeMethod(hostConfiguration, getMethod);
    } catch (Exception e) {
        // some logging
    }

executeMethod在这里抛出UnknownHostExceptionConnectTimeoutException

如果我在“Java控制面板 - >网络设置”对话框中打开“直接连接”,则问题不可重现,但问题是并不总是可以使用直接连接,有时需要代理。

我发现这个问题在Java 1.6上不可重现,但遗憾的是我必须以某种方式解决它而不进行升级。我知道这是一个非常奇怪的问题,看起来更像是JVM中的一个错误,但我希望你可以建议我以某种方式抑制这些烦人的对话。

1 个答案:

答案 0 :(得分:0)

看起来我终于找到了答案。 Here人遇到了与代理设置相关的非常类似的问题,只发生在Java 1.5上。我也在使用“使用自动代理配置脚本”。并且此脚本无法为我检查的某些主机返回正确的结果,因此它返回了错误。

据我所知,Java Webstart bug是根本原因。