5.2 Webサービス・クライアントの作成
5.2.2 詳細手順
AntCodegenTaskを利用したWebサービスの呼び出しは、以下の3つの手順で実現できます。
1. WSDLを指定してスタブクラスを生成 2. Webサービスを呼び出す実行クラスを作成 3. Webサービスの呼び出し
以降、イベントフレームワークで作成されたサンプルアプリケーションを元に Web サービスが呼び出されるまでを 解説します。
作成者:株式会社 NTT データ イントラマート
Page
795.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
815.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利用方法」と同様の手順で利用可能となります。あわせ
てご参照ください。