2016-07-04 6 views
1

私はこれに関するいくつかの質問を見つけましたが、具体的な答えはありませんでした。 私は以下のコードを持っています:JAX-WSスレッドセーフ

1:QName qname =新しいQName(URI、SERVICE_NAME);

2:サービスサービス= Service.create(WSDL_DOCUMENT_LOCATION、qname);

3:TestPort1 port = service.getPort(TestPort1.class);

タイムズ:

  • ライン2は、質問があり、16ミリ秒

  • ライン3は、時間が非常に重要である私の状況では、今27ミリ秒

です qnameとサービスを1回だけ初期化し、静的フィールドとして定義し、必要なときに毎回ポートを取得することができますWSコールを作るかどうか?

他の提案はありますか?

標準のjava jax-wsアノテーションを使用します。

UPDATE:

たぶんソリューションは、Apache Commonsのプールライブラリとして、いくつかのオブジェクトプーリングを使用して、将来の使用のために作成したポートを保存することですか?

答えて

1

QNameは、文字列のみを内部的に保持し、コンストラクタが呼び出された後にそれらを変更するメソッドを提供しないので、そうでない場合でも不変クラスとして扱うことができます。

+0

[OK]が、それは完全な答えではありません – djuRa