尝试使用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");
答案 0 :(得分:0)
我建议您使用admin console to tune the JVM settings至include the appropriate properties that define the JVM's proxied environment。
以下是您需要使用的控制台页面的屏幕截图...
这将允许服务器访问缺少的dtd文件,而不必干扰开发人员计算机的整体系统配置。