1

我正在使用 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 被延迟初始化。

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

apache cxf客户端初始化缓慢 http://cxf.547215.n5.nabble.com/Slow-Init-Time-td563933.html

此外,我尝试加载一半的服务,Windows 中的加载时间约为 25 秒,而 Solaris 中的加载时间约为 2 分钟。

我想请教一下故障排除方法,是什么导致了延迟,以便将初始化时间减少到最低限度。进一步来说:

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

提前感谢您,Karl 非常感谢您的任何想法。

4

1 回答 1

1

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

于 2013-12-26T19:28:05.030 回答