2013-05-16 66 views
0

我正在使用Apache CXF從wsdls(aprox 50)生成java源代碼類,這些類都在jetty服務器中加載。 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」標誌。

我們使用彈簧配置和相關的彈簧豆懶惰地初始化。

我已經檢查了以下情況,但都沒有與上述問題有關。

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

此外,我已經試過裝一半的窗口服務和加載時間約25秒,而在Solaris中保持約2分鐘。

我想問一下排除故障的方法,是什麼導致了延遲,以便將初始化時間降到最低。更具體地說:

1)爲什麼你認爲這種延遲存在(特別是在Solaris中)。 2)如何獲得Jetty的JVM內存和CPU配置? 有沒有辦法通過Jetty.xml配置文件修改它們?

非常感謝您的任何想法, 卡爾。

回答

0

還不確定爲什麼兩個操作系統之間存在差異。儘管應用jvm參數 -Dcom.sun.xml.bind.v2.runtime.JAXBContextImpl.fastBoot = true使碼頭啓動速度提高了一倍