Jetty启动时间的改善

时间:2013-05-16 18:00:49

标签: web-services spring jetty cxf

我正在使用apache CXF从wsdls(aprox 50)生成java源类,这些类在jetty服务器中加载。 Jetty(v.7.4.5)以编程方式在另一个java应用程序中使用org.eclipse.jetty.server.Server-> start()启动。

Jetty服务器,当不包括这些类时,启动速度非常快(少于3秒),但是当包含服务的war包时,在windows os中需要超过40秒。 Solaris中的问题更糟糕,大约需要3分钟。

加载期间的服务实施者没有初始化,也不需要任何形式的资源,也不应该是延迟的原因。 .war文件中不包含其他jar文件,因为它们已经从启动jetty的应用程序预加载。然而,web.xml使用web-app metadata-complete =“true”标志。

我们使用spring配置,并且相关的spring bean被懒惰地初始化。

我已经检查了以下情况,但它们都与上述问题无关。

Slow initialization of apache cxf client http://cxf.547215.n5.nabble.com/Slow-Init-Time-td563933.html

此外,我已经尝试加载一半的服务,并且在Windows中的加载时间大约是25秒,而Solaris中的加载时间大约是2分钟。

我想问一些方法来排除故障,导致延迟的原因是为了将初始化时间减少到最小。更具体地说:

1)为什么你认为这种延迟存在(特别是在Solaris中)。    2)如何获得Jetty的JVM内存和CPU配置?       有没有办法通过Jetty.xml配置文件修改它们?

提前感谢您的任何想法,我们非常感谢, 卡尔。

1 个答案:

答案 0 :(得分:0)

仍然不确定为什么两个操作系统之间存在差异。虽然应用jvm参数 -Dcom.sun.xml.bind.v2.runtime.JAXBContextImpl.fastBoot = true使jetty启动速度提高两倍