• 検索結果がありません。

詳細手順

ドキュメント内 intra-mart WebPlatform / AppFramework (ページ 84-88)

5.2 Webサービス・クライアントの作成

5.2.2 詳細手順

AntCodegenTaskを利用したWebサービスの呼び出しは、以下の3つの手順で実現できます。

1. WSDLを指定してスタブクラスを生成 2. Webサービスを呼び出す実行クラスを作成 3. Webサービスの呼び出し

以降、イベントフレームワークで作成されたサンプルアプリケーションを元に Web サービスが呼び出されるまでを 解説します。

作成者:株式会社 NTT データ イントラマート

Page

79

5.2.2.1 WSDLを指定してスタブクラスを生成

ここでは、スタブ作成用のAntタスク 「AntCodegenTask」 を利用してスタブ・クラスがアーカイブされたjarファイ ルを生成します。

ビルドツール「Ant」がインストールされていない場合は、以下のサイトを参考にインストールを行ってください。

 (http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/install.html)

5.2.2.1.1.1 StubGen.xmlの設定

%IM_HOME%/bin/tools/web_service/StubGen.xmlの「WSDLのファイルパス、またはURL(7行目)」 と 「jarファ イル名(41行目)」を設定します。

こ こ で は 、 「 wsdlfilename 」 を 「 http://localhost:8080/imart/services/EventService?wsdl 」 、 「 jarfile 」 を

「${dest.dir}/event_stub.jar」とします。

WSDL が https で提供されている場合は、WSDL ファイルをローカル環境にダウンロード後、そのファイルを

StubGen.xmlの「WSDLのファイルパス、またはURL(7行目)」に指定してください。

5.2.2.1.1.2 バッチファイルの実行

intra-martを起動し、%IM_HOME%/bin/tools/StubGen.batを実行します。

これにより、%IM_HOME%/bin/tools/web_service/stub/ディレクトリに「event_stub.jar」が作成されます。

Page 80

Copyright 2000-2012 株式会社NTTデータ イントラマート All rights Reserved.

5.2.2.2 Webサービスを呼び出す実装クラスの作成

Eclipse を 起 動 し 、 新 規 に Java プ ロ ジ ェ ク ト を 作 成 し ま す 。 こ こ で の プ ロ ジ ェ ク ト 名 は

WebServiceClientByJavaEE」とします。プロジェクト作成時に%IM_HOME%/doc/imart/WEB-INF/lib配下の全 てのjarファイルおよび、先ほど作成した%IM_HOME%/bin/tools/web_service/stub/ event_stub.jarをjavaプロジェ クトのビルドパスに割り当ててください。

以下の「sample.web_service.provider.ClientMain.java」を作成してください。

package sample.web_service.provider;

import

jp.co.intra_mart.foundation.web_service.util.impl.WSAuthDigestGenerator4WSSE;

public class ClientMain {

public static void main(String[] args) {

try {

// スタブを生成

String endPoint = "http://localhost:8080/imart/services/EventService";

EventServiceStub stub = new EventServiceStub(endPoint);

// ユーザ情報

String loginGroupID = "default";

String userID = "guest";

String password = "guest";

// WSSE認証用のパスワードダイジェストを生成

WSAuthDigestGenerator4WSSE gen = new WSAuthDigestGenerator4WSSE();

String passwordDigest = gen.getDigest(loginGroupID, userID, password);

// ログイン認証用のユーザ情報を生成

EventServiceStub.WSUserInfo wsUserInfo = new EventServiceStub.WSUserInfo();

wsUserInfo.setLoginGroupID(loginGroupID);

wsUserInfo.setUserID(userID);

wsUserInfo.setPassword(passwordDigest);

wsUserInfo.setAuthType(gen.getAuthType());

// パラメータを設定し、Webサービスを呼び出す

EventServiceStub.DoEvent param = new EventServiceStub.DoEvent();

param.setWsUserInfo(wsUserInfo);

param.setItemNo(1234);

EventServiceStub.DoEventResponse res = stub.doEvent(param);

EventServiceStub.Item item = res.get_return();

// 処理結果を出力

System.out.println(item.getItemNo());

System.out.println(item.getItemName());

System.out.println(item.getValid());

System.out.println(item.getDate());

} catch(Exception ex) { ex.printStackTrace();

} } }

作成者:株式会社 NTT データ イントラマート

Page

81

5.2.2.3 Webサービスの呼び出し

パッケージエクスプローラから「ClientMain.java」を右クリックし、「実行」→「Javaアプリケーション」を選択してくださ い。実行結果がコンソールに出力されます。

5.2.2.3.1 SSL経由のWebサービスを利用する場合

システムプロパティ「javax.net.ssl.trustStore」を設定することで、SSL経由のWebサービスを利用することができます。

「4.2.5 WSDLがhttpsで提供されている場合のSOAPClient利用方法」と同様の手順で利用可能となります。あわせ

てご参照ください。

Page 82

Copyright 2000-2012 株式会社NTTデータ イントラマート All rights Reserved.

ドキュメント内 intra-mart WebPlatform / AppFramework (ページ 84-88)