Webサービスを呼び出すクライアントを作成するには、サービスエンドポイントインタフェースやサービスインタフェースが必要です。それらの必要なファイルはWSDLから作成することができます。
必要なファイルが揃えば、あとはDependency Injectionを定義するなどしてインタフェースにオブジェクトを対応付けて、インタフェース経由でメソッドを呼び出すことができます。
必要なファイルの作成
サービスエンドポイントインタフェース等は、新規ウィザードから[Webサービス] > [Webサービス(JAX-WS)]を選択し、ウィザードで作成することができます。
作成方法の詳細については、"5.3.5 WSDLからサービスエンドポイントインタフェースを作成する"を参照してください。
インタフェースへのオブジェクトの取得
Dependency Injectionによって簡単にオブジェクトを取得することができます。
Webサービスを呼び出す場合には、以下のように@WebServiceRefアノテーションを使用します。
WebServiceRefアノテーションの使用例
@WebServiceRef(name="service/Calc") private CalcService service; |
記述例 | 説明 |
---|---|
service/Calc | サービスが対応付けられている名前を指定します。 |
CalcService | サービスインタフェースです。 |
注意
Dependency Injectionは、サーブレットやEJBなどJava EEコンテナで管理されているJava EEコンポーネントでしか使用することができません。
それ以外のクラスでは、JNDIのlookupによってオブジェクトを取得します。
詳細は、"8.2.2 JNDIのlookupによるオブジェクトの取得について"を参照してください。
Webサービスの呼び出し
Webサービスの呼び出しは、以下のようにサービスエンドポイントインタフェースにオブジェクトを取得し、インタフェース経由でメソッドを呼び出します。
Webサービスの呼び出し例
Calc port = service.getCalcPort(); int result = port.add(100,200); |
説明項目 | 説明 |
---|---|
Calc | サービスエンドポイントインタフェースです。 |
service | サービスインタフェース用のフィールドで、Dependency InjectionまたはJNDIのlookupでオブジェクトを取得したものが設定されています。 |
port.add(100,200) | サービスエンドポイントインタフェースで公開されているメソッドを呼び出しています。Calcインタフェースでは、addメソッドが公開されています。 |