Menu Close

25.4. エンドポイントのプロキシーの取得

概要

サービスプロキシーは、リモートサービスによって公開されるすべてのメソッドを提供するオブジェクトで、リモート呼び出しを行うのに必要なすべての詳細を処理します。Service オブジェクトは、getPort() メソッドで認識しているすべてのエンドポイントのサービスプロキシーを提供します。サービスプロキシーを作成したら、そのメソッドを呼び出すことができます。プロキシーは、サービスのコントラクトで指定された接続情報を使用して、呼び出しをリモートサービスエンドポイントに転送します。

getPort() メソッド

例25.5「getPort() メソッド」に示すように、getPort() メソッドは、指定されたエンドポイントのサービスプロキシーを返します。返されるプロキシーは SEI と同じクラスです。

例25.5 getPort() メソッド

public<T> TgetPortQNameportNameClass<T>serviceEndpointInterfaceWebServiceException

portName パラメーターの値は、プロキシーが作成されるエンドポイントを定義する wsdl:port 要素を識別する QName です。serviceEndpointInterface パラメーターの値は、SEI の完全修飾名です。

注記

WSDL コントラクトを操作しない場合、portName パラメーターの値は通常 addPort() の呼び出し時に portName パラメーターに使用される値と同じです。

例25.6「サービスプロキシーの取得」に、例25.4「Service オブジェクトへのポートの追加」で追加したエンドポイントのサービスプロキシーを取得するコードを示します。

例25.6 サービスプロキシーの取得

package com.fusesource.demo;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public class Client
{
public static void main(String args[])
  {
    ...
    quoteReporter proxy = s.getPort(portName, quoteReporter.class);
    ...
  }
}