wsimportを使用して生成されたWSDLおよびクライアントコードは非常に大きいです。だから、jaxwsで必要なクライアントクラスを読み込むのではなく、10秒かかるとヒープ消費するすべてのものをロードする方法や設定が欲しい。 また、異なる10個のスレッドを使用して複数のポートを作成すると、使用されるメモリが1.5Gまで上がり、メモリエラーが発生しやすくなります。jaxwsクライアントを遅延ロードする方法
クライアントのスタブオブジェクトを遅延させてロードすると大きな助けになります。
wsimportを使用して生成されたWSDLおよびクライアントコードは非常に大きいです。だから、jaxwsで必要なクライアントクラスを読み込むのではなく、10秒かかるとヒープ消費するすべてのものをロードする方法や設定が欲しい。 また、異なる10個のスレッドを使用して複数のポートを作成すると、使用されるメモリが1.5Gまで上がり、メモリエラーが発生しやすくなります。jaxwsクライアントを遅延ロードする方法
クライアントのスタブオブジェクトを遅延させてロードすると大きな助けになります。
問題は予期したとおりに解決できません。とにかくJavaはクラスを怠け者でロードしますが、JAX-WSとは異なる動作をするわけではなく、あなたの特定のケースでは奇妙な動作をしません。 JAX-WSに何かを変更して問題を解決する設定はありません。
実際の問題は、メソッド、パラメータ、フォルトなどが数多くある巨大なWebサービスですが、ヒープの使用状況やメモリ不足の状態は残りの部分に起因するはずですアプリケーションであり、JAX-WSクライアントではありません。
私はあなたのソリューションは、機能や他のコンセプトによって分割された、巨大なWebサービスを複数のWebサービスに分割する方向にあると思います。そして、本当に必要なサービス(およびそのクライアント)のみを使用します。
ありがとうございました。問題はクラスのロードに関する問題ではなく、スレッドごとに完全にロードされるportTypeが大きなヒープに追加されます。はい、それはバグサービスであり、axis2を使用しているときには、portTypeオブジェクトが必要なときだけロードされるため、この問題は発生しませんでした。 JAXWSクライアントですべてのオブジェクトを先にロードしない方法を探しています。 – kiri
これは、JAX-WSサービス・プロキシの構造にすぎません。相互接続されたクラスが多すぎます。 JAX-WSとAxisのクラス数を比較するとどうなりますか? – vagelis
クラス数は両方とも同じかもしれませんが、それは心配です。主な関心事は、必要な(スレッドセーフではない)複数のportTypeであり、10スレッドに対して1GBのヒープを多く取ります。したがって、50スレッドで動作するには〜5GBのヒープが必要です。これは許容できません:-( – kiri