リモート Web サービス API の使用

アプリケーションで、IBM® Rational® Asset Manager Web サービスを使用することができます。

このタスクについて

重要: Web サービス API や HTTP のアップロードおよびダウンロード・メカニズムは、内部 API であり、サポートされていません。 自己責任において使用してください。

RationalAsset Manager を使用して、リポジトリーでの作業を可能にする Web サービスを公開します。 Rational Asset Manager Web サービス記述言語 (WSDL) ファイルを使用して、Rational Asset Manager サーバーと対話するカスタム・アプリケーションを開発します。

手順

Web サービスを使用して Rational Asset Manager サーバーに 接続する手順は、以下のとおりです。

  1. Rational Asset Manager の Web クライアントの「拡張」ページにナビゲートします。
  2. 「Web サービス」の下で、「RAM1.wsdl」リンクをクリックして WSDL ファイルをダウンロードします。
  3. Web サービスを使用するには、サーバーと対話するために WSDL からクライアント・サイドのプロキシーを生成する必要があります。
  4. WSDL のプロキシーを生成した後、Web サービスの URL http://server:port/com.ibm.ram.repository.web.ws.was/RAMServices にアクセスします。ここで、server はサーバーのホスト名、port はポート番号、com.ibm.ram.repository.web.ws.was は Web サービス Web アプリケーション、RAMServices は Web サービスが存在するロケーションです。 RAMServices は呼び出しを自動的に適切なロケーションにリダイレクトするので、クライアントは呼び出しを行う際にリダイレクトを有効にする必要があります。

    クライアントは 、http://server:port/com.ibm.ram.repository.web.ws.was/RAMServices にアクセスして、このサービスを取得できます。Web サービス起動のための この単一ロケーションは、要求内にユーザー・クレデンシャルがあるかどうかに応じて、匿名サーバー・ロケーション (http://server:port/com.ibm.ram.repository.web.ws.was/services/RAM1) または基本認証のロケーション (http://server:port/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1) のいずれかに、クライアントをリダイレクトします。

    クライアントは、匿名サービスおよび基本認証ベースのサービスに直接アクセスすることを選択した場合 、それぞれ http://server:port/com.ibm.ram.repository.web.ws.was/services/RAM1 エンドポイントおよび http://server:port/com.ibm.ram.repository.web.ws.was/RAMSecure/services/RAM1 エンドポイントを使用することで、アクセスすることができます。

  5. サーバーへの接続:
    • サインイン済みユーザーとして接続する場合は、HTTP 基本認証を使用してユーザー名とパスワードを指定します。
    • 匿名で接続する場合は、ユーザー名とパスワードを指定しません。
  6. Rational Asset Manager にはライセンス・スキーマがあり、サーバーに接続する各ユーザーに対してライセンスを提供します。 複数の呼び出しを行うが同じライセンス・キャッシュを保持する場合は、同じライセンスがサーバーへの接続およびセッションで保持されます。
  7. RationalAsset Manager Javadoc にある API を使用します。この Javadoc は、ヘルプの「参照」セクションにあります。

タスクの結果

要確認: HTTPS SSL セキュア接続を使用して接続するには、HTTPS を機能させるクライアントの鍵リングに、サーバーから除去された公開鍵があることを確認してください。

Web サービス起動のためのサンプル・クラス
public class RAMClient {
  public static final String RAM_LOCATION = "http://server:port/com.ibm.ram.repository.web.ws.was";

  public void doSearchAndDownload() throws Exception {
    String SECURE_PREFIX = "/RAMSecure"; // To be used when username and password are provided
    String RAM_WS_LOCATION = RAM_LOCATION + SECURE_PREFIX + "/services/RAM1";
    String USERNAME = "admin";
    String PASSWORD = "admin";

    // Construct WebSerivces stub
    RAM1 ramWebService = new RAM1ServiceLocator().getRAM1(new URL(RAM_WS_LOCATION));
    if (ramWebService instanceof Stub) {
      Stub axisStub = (Stub) ramWebService;
      // Set user name and password
      axisStub.setUsername(USERNAME);
      axisStub.setPassword(PASSWORD);
    }

    // Get constants for invoking WebServices
    Constants constants = ramWebService.getConstants();

    // Search for assets with name starting with 'soa' and owned by 'admin' user.
    String[] queries = new String[2];
    queries[0] = constants.getQUERY_NAME()+":(soa*)";
    queries[1] = constants.getQUERY_OWNER()+":(admin)";
    SearchResultSO searchResults = ramWebService.search(queries, null, true, 
      constants.getSORT_LAST_MODIFIED(), 0, -1, -1, false, Locale.getDefault().toString());

    // Download assets got from search
    String RAM_ASSET_LOCATION = RAM_LOCATION + SECURE_PREFIX + "/RAMAssetAccess.jsp?";
    SearchAssetInformationSO[] searchAssets = searchResults.getSearchAssets();
    for (int ac = 0; ac < searchAssets.length; ac++) {
      String assetID = searchAssets[ac].getGUID();
      String assetVersion = searchAssets[ac].getVersion();

      String encodedAssetID = URLEncoder.encode(assetID, "UTF-8");
      String encodedAssetVersion = URLEncoder.encode(assetVersion, "UTF-8");

      String assetLocation = RAM_ASSET_LOCATION + "assetid="+encodedAssetID+"&version="+encodedAssetVersion;
      downloadAssetUsingHTTPGet(assetLocation, USERNAME, PASSWORD);
    }
  }

  private void downloadAssetUsingHTTPGet(String assetLocation, String username, String password) {
    // Download asset
  }
}

フィードバック