尝试获取sun-web-app_2_5时,glassfish中的连接超时

时间:2011-05-20 06:58:26

标签: java glassfish liferay

尝试使用liferay门户在glassfish v2应用服务器上部署war文件时遇到问题。当我们从ubuntu 10.4升级到10.10(及更高版本)时,我们的部署时间从21秒左右变为6分钟。我似乎问题是当尝试从oracle获取http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd时发生超时。在这些版本中,ubuntu中的某些内容必须已经改变。我想问题的一部分是我们是企业防火墙/代理的背后但不会改变我害怕..

那么什么是“最好的”。将sun.net.client.defaultConnectTimeout设置为21秒(工作并提供与10.4相同的部署时间),在本地存储dtd以进行访问(因为现在我们无法从10.4或10.10访问它,因此时间 - )。我想我们可以在我们的开发者机器上改变linux的tcp设置,但这似乎不是一个好的解决方案。

使用以下代码,我们在10点10分的时间内获得大约21秒的秒数和10秒的189秒。

    long start = System.currentTimeMillis();
    try {     
        System.out.println("start");

        URL u = new URL("http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd");
        URLConnection conn;

        conn = u.openConnection();
        System.out.print(conn.getConnectTimeout());
        //conn.setConnectTimeout(5*1000);

        int readTimeout = conn.getReadTimeout();
        BufferedReader in = new BufferedReader(
                new InputStreamReader(
                conn.getInputStream()));
        String inputLine;

        while ((inputLine = in.readLine()) != null) {
            System.out.println(inputLine);
        }
        in.close();                        
    } catch (Exception ex) {
        Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
    }
    System.out.println("Total time = " + (System.currentTimeMillis() - start) / 1000.0 + " seconds");

1 个答案:

答案 0 :(得分:0)

我建议您使用admin console to tune the JVM settingsinclude the appropriate properties that define the JVM's proxied environment

以下是您需要使用的控制台页面的屏幕截图...

enter image description here

这将允许服务器访问缺少的dtd文件,而不必干扰开发人员计算机的整体系统配置。