接続するサービスにWSSEセキュリティが必要なため、スレッドセーフではないため、アプリケーションの異なるクライアント間でポートオブジェクトを共有できないため、Apache CXFクライアントにメモリの問題があります。 私たちはApache Commons pool2を使ってx個のオブジェクトをプールしています。 CXFクライアントが接続するサービスは、非常に大きく複雑なxmlオブジェクトを返します.jProfilerを使用して気付いたようなものは です。プーリングしているポートオブジェクトは返された複合応答オブジェクトへの参照を持っています。メモリが解放されていないGCを実行します。サービスがビジー状態になると、メモリの問題が発生します。 まず、CXFではこれが正常です.2番目に、CXFにこれらの参照にハングアップして自分自身をきれいにしないように指示する方法がありますか?Apache CXFクライアントメモリ
非常に基本的な例として、これは、アプリケーションが任意の助けをいただければ幸いです
{
webServicesPT webServicesPT = clientPool.getPort(); // calls borrowObject()
try {
webServicesPT.service();
} finally {
clientPool.returnPort(webServicesPT); // calls returnObject()
}
}
を起動時にプールが作成された後、我々はポートを使用している方法です。
ありがとうございました。