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

标签 java glassfish liferay

我们在尝试使用 liferay 门户在 glassfish v2 应用服务器上部署 war 文件时遇到问题。当我们从 ubuntu 10.4 升级到 10.10(及更高版本)时,我们的部署时间从 21 秒左右缩短到 6 分钟。我似乎问题是尝试获取 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.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");

最佳答案

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

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

enter image description here

这将允许服务器获取丢失的 dtd 文件,而不必干扰开发人员计算机的整体系统配置。

关于java - 尝试获取 sun-web-app_2_5 时 glassfish 中的连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6068519/

相关文章:

java - 当我使用 getClass.getMethod(...) 时,它是 "reflection"吗?

java - 无法使用 ClassPathXmlApplicationContext 加载我的配置文件,

java - 从外部应用程序调用 portlet 操作

xml - 如何在 Liferay 中使用 JAXB,获取 ClassCastException

java - Spring ConversionFailedException 无法序列化为 JSON

java - Netbeans中Swing组件的变量名

java - 同步读取(即 "receive"而不是监听器)

java - 使用 Jersey 从 RESTful API 收集信息

java - 如何使用 Executor 创建 Jersey 2 客户端

java - Liferay 6.2 媒体库