1

apache CXF を使用して、jetty サーバーにロードされている wsdls (約 50) から Java ソース クラスを生成しています。Jetty (v.7.4.5) は、別の Java アプリケーション内で org.eclipse.jetty.server.Server->start() を使用してプログラムで開始されます。

これらのクラスが含まれていない場合、Jetty サーバーは非常に高速 (3 秒未満) で起動しますが、サービスを含む war バンドルが含まれている場合、Windows OS では 40 秒以上かかります。Solaris では問題がさらに悪化し、約 3 分かかります。

ロード中のサービス実装者は初期化されておらず、いかなる種類のリソースも必要としないため、遅延の原因にはなりません。追加の jar ファイルは、jetty を開始するアプリケーションから既にプリロードされているため、.war ファイルには含まれません。それにもかかわらず、web.xml は web-app metadata-complete="true" フラグを使用します。

スプリング構成を使用し、関連するスプリング 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 構成ファイルを使用してそれらを変更する方法はありますか?

カールさん、どんなアイデアでも大歓迎です。

4

1 に答える 1

1

2つのOSに違いがある理由はまだわかりません。ただし、jvm パラメータ -Dcom.sun.xml.bind.v2.runtime.JAXBContextImpl.fastBoot=true を適用すると、jetty の起動速度が 2 倍になります

于 2013-12-26T19:28:05.030 に答える