【发布时间】:2013-05-16 18:00:49
【问题描述】:
我正在使用 apache CXF 从 wsdls (aprox 50) 生成 java 源类,这些类加载在码头服务器中。 Jetty (v.7.4.5) 在另一个 java 应用程序中使用 org.eclipse.jetty.server.Server->start() 以编程方式启动。
Jetty 服务器在不包含这些类时,启动速度非常快(不到 3 秒),但是当包含服务的 war 包时,在 windows 操作系统中需要超过 40 秒。在 Solaris 中问题更严重,大约需要 3 分钟。
加载期间的服务实现者未初始化,它们不需要任何类型的资源,它们不应成为延迟的原因。 .war 文件中不包含其他 jar 文件,因为它们已经从启动码头的应用程序中预加载。然而 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配置文件修改它们?
提前感谢您的任何想法,我们将不胜感激, 卡尔。
【问题讨论】:
标签: web-services spring jetty cxf