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

Java 尝试获取sun-web-app_2_5时glassfish中的连接超时,java,glassfish,liferay,Java,Glassfish,Liferay,我们在尝试使用liferay portal在glassfish v2应用程序服务器上部署war文件时遇到问题。当我们从ubuntu 10.4升级到10.10(或更高版本)时,我们的部署时间从21秒左右增加到了6分钟。我觉得问题在于,当试图从oracle获取时会出现超时。在这两个版本之间,ubuntu中一定有一些东西发生了变化。我想问题的一部分是我们在公司防火墙/代理的后面,但这恐怕不会改变 那么,什么才是“最好的”。将sun.net.client.defaultConnectTimeout设置为

我们在尝试使用liferay portal在glassfish v2应用程序服务器上部署war文件时遇到问题。当我们从ubuntu 10.4升级到10.10(或更高版本)时,我们的部署时间从21秒左右增加到了6分钟。我觉得问题在于,当试图从oracle获取时会出现超时。在这两个版本之间,ubuntu中一定有一些东西发生了变化。我想问题的一部分是我们在公司防火墙/代理的后面,但这恐怕不会改变

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

使用以下代码,我们在10.4上获得了约21秒的超时,在10.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");

我建议您使用to

这是控制台中您需要使用的页面截图

这将允许服务器访问丢失的dtd文件,而不必干扰开发人员机器的总体系统配置