本文へジャンプ

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

送信されたすべての情報は安全です。

  • 閉じる [x]

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む


送信されたすべての情報は安全です。

  • 閉じる [x]

WSIL4Jを使ってサービス・ディスカバリーを容易にする

Web Services Inspection Language文書の処理も、このJava APIを使えば簡単

Alfredo da Silva, Advisory Software Engineer, IBM
Alfredo da SilvaはIBMのソフトウェア開発者です。彼は、IBM Web Services Toolkit (WSTK) を担当するグループのメンバーです。Alfredoの連絡先は、afdasilv@us.ibm.com です。

概要: ネットワークでWebサービスを使用するには、まず、Webサービスを発見してその情報を取得する必要があります。Web Services Inspection Language (WSIL) を使えば、このプロセスをある程度容易にすることができます。この記事で、Alfredo da Silvaは、このプロセスをさらに簡単にしてくれるJava APIを紹介します。これから見ていくコードは、WSILドキュメントを処理し、そこに含まれる情報を読みやすいテーブル形式にして提示してくれます。このAPIをマスターすれば、読者自身のアプリケーションにおいてもその威力を発揮できるでしょう。

日付:  2002年 8月 01日
レベル:  初級 この記事の原文:  英語
アクティビティー: 631 ビュー
お気軽にご意見・ご感想をお寄せください: 


Apache Software Foundationに対するIBMのWSIL4J APIの寄与により、サービス・ディスカバリーを実行するために必要なアプリケーションを作成する作業が容易になります。この記事では、WSIL4J APIの威力を発揮するWSIL Loaderというサンプル・アプリケーションを紹介します。

WSIL Loaderを調べることで、WSIL検査文書のURLを入力として受け取り、WSIL文書の内容に基づいてWSDLのテーブルを表示する、JSP/サーブレットのコードの書き方がわかるはずです。生成されるテーブルには3つの列があり、名前、要約、発見されたさまざまなサービスの場所がリスト表示されます。各列は、ロードされたWSIL検査文書に対応する要素がある場合にだけ表示されます。場所の列には、渡されたWSIL検査文書の参照に収められていたWSDLドキュメントへのハイパーリンクが表示されます。

メモ: 記事の最後にある参考文献 からは、この記事のサンプル・コードをダウンロードでき、他の役に立つリンクも参照できます。

WSIL4Jにおける情報のフロー

図1 は、クライアント (Webブラウザー) とwsdlTableGenerator JavaServer Page (JSP) の間、およびこのJSPとInspectionHandlerServlet の間の情報フローを表したものです。JSPを要求すると、クライアントには図2 に示すページが表示されます。ユーザーは、WSIL検査文書の有効なURLを入力します。制御はInspectionHandlerServlet に移り、このサーブレットは必要な情報を提供して、制御をJSPに戻します。JSPは情報を処理し、図3 に示すページを生成します。

エラー処理のメカニズムを集中化してわかりやすくするため、エラー処理はerrorPage.jsp を呼び出して行います。その結果、エラー・ページがクライアントに送信されます。


図1. WSIL Loaderアプリケーションの情報フロー


図2. WSIL Loaderの初期ページ


図3. WSIL Loaderが表示するWSDLのテーブル


WSILのインプリメンテーション

InspectionHandlerServlet のコードをダウンロードしてください。すべてのアクションは、doPost() メソッドで発生します。理解しやすいように、このコードについて少し詳しく見ていきます。

最初に、受け取ったHTTPリクエストから取得したWSIL文書のURLを使って、WSILProxy オブジェクトを作成します。このオブジェクトは、リスト1 に示すように、渡されるWSIL検査文書を解析し、WSIL文書オブジェクトの取得に備えます。


リスト1. WSIL文書オブジェクトの作成
                     
  // Create WSIL proxy
      WSILProxy wsilProxy = new WSILProxy(req.getParameter(INSPECTION_URL));
      // Create a new WSIL document
      wsilDoc = wsilProxy.getWSILDocument();

次に、サービス名、サービスの要約、およびWSDL文書の場所に関する情報を、WSIL文書オブジェクトに照会する必要があります。返された情報は、さらに検索できるよう、HttpServletRequest クラスのインスタンスに格納します。リスト2 は、これらのメソッド呼び出しを示したものです。


リスト2. WSIL検査データの取得
                
// Set service names
      req.setAttribute(SERVICE_NAMES, getAllWSDLServiceNames(wsilDoc));
      // Set abstracts
      req.setAttribute(ABSTRACTS, getAllAbstracts(wsilDoc));
      // Set locations
      req.setAttribute(LOCATIONS, getAllWSDLLocations(wsilDoc));

リスト3 に示すように、その後制御はwsdlTableGenerator.jsp のコードに戻ります。


リスト3. JSPコードの制御の移動
                
// Transfer control
RequestDispatcher rd = req.getRequestDispatcher(JSP_VIEWER);
rd.forward(req, res);

リスト4 は、errorPage.jsp コードに制御を移すことでエラーを処理する方法を示しています。


リスト4. エラー処理
                
req.setAttribute("javax.servlet.jsp.jspException", t);
      // Transfer control to Error page
      RequestDispatcher rd = getServletContext().getRequestDispatcher(ERROR_PAGE);
      rd.forward(req, res);

wsdlTableGenerator.jsp をダウンロードしてください。このコードは、InspectionHandlerServlet によって送信されたHTTP要求から、目的の要素であるサービス名、サービスの要約、およびWSDLの場所を抽出します。ロジックにより、実際に存在する要素を調べられた後、for ループで、入手可能な列を含むテーブルが作成されます。


WSIL Loaderアプリケーションの実行

WSIL Loaderアプリケーションは、IBM Web Services Toolkit (WSTK、詳細については参考文献 を参照) の一部として利用できます。WSTKをインストールして構成すれば、以下の手順でWSIL Loaderを起動して実行できます。

  1. Tomcatを起動します。
  2. Webブラウザーでhttp://localhost:8080/wstk/wsilLoader/wsdlTableGenerator.jsp にアクセスします。localhost とポート番号は、必要に応じて、ツールキットの構成時に選択した値に置き換えます。
  3. 検査文書のURL (http://www.xmethods.net/inspection.wsil など) を入力するか、またはデフォルト値を使用します。ツールキットで利用可能なWSDL文書を含むテーブルが生成されます。
  4. "Location" 列のエントリーを選択すると、対応するWSDL文書がロードされます。

WSIL4Jを使ってよりよいWebサービスを作成する

ここで検討したサンプル・アプリケーションを見れば、WSIL4J APIを使用したWSIL文書の処理がどれほど簡単かおわかりいただけることでしょう。結果として、サービス・ディスカバリー・プロセスも非常に簡単にインプリメントできるようになります。

読者自身の作業でこのコードを自由にお使いください。このコードを使うと、文書に含まれる情報がテーブル形式にまとめられるので、未知のWSILを扱うときの便利さがわかると思います。最も意味のある検査データであるサービス名、サービスの要約、そして関連するWSDL文書のURLの場所が、完全に公開されます。URLの場所は、関連するWSDL文書へのハイパーリンクとしても表示されます。これにより、WSIL検査文書によって提供される検査機能が一層拡張されます。

ほかに役に立つ記事やツールがありましたら、IBMのWebサービス・チームまでぜひご連絡ください。WSTKページおよびプロジェクト・チームへのフィードバック・フォームへのリンクは、参考文献のセクションに示されています。


参考文献

著者について

Alfredo da Silva

Alfredo da SilvaはIBMのソフトウェア開発者です。彼は、IBM Web Services Toolkit (WSTK) を担当するグループのメンバーです。Alfredoの連絡先は、afdasilv@us.ibm.com です。

不正使用の報告のヘルプ

不正使用の報告

ありがとうございます。 このエントリーは、モデレーターの注目フラグが設定されました。


不正使用の報告のヘルプ

不正使用の報告

不正使用の報告の送信に失敗しました。


developerWorks: サイン・イン


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

表示名をお選びください

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

(半角英数字で3文字以上31文字以下にする必要があります)


「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 利用条件

 


この記事を評価する

コメント

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=SOA and Web services
ArticleID=245543
ArticleTitle=WSIL4Jを使ってサービス・ディスカバリーを容易にする
publish-date=08012002
author1-email=afdasilv@us.ibm.com
author1-email-cc=

タグ

Help
このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。

スライダーバーを使用することで、より多く(少なく)タグを表示します。

人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。

マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。

このタグで、My developerWorks のすべてのタイプのコンテンツを見つけるために検索フィールドを使用します。人気のタグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するトップのタグを表示します。マイ・タグは、この特定のコンテンツ・ゾーン(例えば、Java テクノロジー、Linux や WebSphere など)に対するお客様ご自身のタグを表示します。