SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

SQLも使えるオブジェクトデータベース「CACHE'」を知る(AD)

第10回 CACHÉによるWebサービスの概要

SQLも使えるオブジェクトデータベース「CACHE'」を知る 10

  • このエントリーをはてなブックマークに追加

CACHÉによるWebサービスクライアントの作成方法

 Caché WebサービスコンシューマがWebサービスプロデューサと通信するには、プロデューサのプロキシクラスを必要とします。Cachéでは、このプロキシクラスを、ウィザードを利用し、WSDLドキュメントに基づいて自動的に生成します。ウィザードでは、WSDLドキュメントのアドレスを指定するだけです。また、Cachéは、SOAP―オブジェクト間の変換をすべて自動的に行うため、CachéのアプリケーションとWebサービスとの通信が完全に透過的になります。

ウィザードを利用したプロキシクラスの作成

 Caché Webサービスクライアントウィザードを利用して、プロキシクラスを生成してみましょう。

  1. Cachéスタジオで、プロデューサ側とは異なるネームスペースを選択します。
  2.  
  3. [ツール]の[アドイン]メニューから[アドイン]を選択して、[アドイン]ダイアログを表示させます。
  4.  
    [アドイン]ダイアログ
    [アドイン]ダイアログ
     
  5. [SOAP Client Wizard]を選択し、[OK]ボタンを押して、[SOAPクライアントウィザード]を起動します。
  6.  
    SOAPクライアントウィザード
    SOAPクライアントウィザード
     
  7. プロデューサアプリケーションのWSDLドキュメントのURLを入力し、[次]ボタンを押します。クライアントウィザードの[WSDLソース]画面で、WSDLドキュメントが表示されるので、問題がなければ、オプションはデフォルトのままで[次]ボタンを押します。
  8.  
    WSDLドキュメントの確認画面
    WSDLドキュメントの確認画面
     
  9. [SOAPクライアントクラスを生成中]と表示された画面に変わりますので、生成が完了したら、[完了]ボタンを押します。これで指定したネームスペースにプロキシクラスがインストールされて、生成は完了です。

CACHÉによるWebサービスのエラー処理

 SOAPには、フォルト要素という、フォルトの原因となった特定のエラーに関する情報を、Webサービスプロデューサから返す仕組みがあります。Cachéでは%SOAP.Faultオブジェクトを使用しますが、CachéのWebサービスプロデューサは、これらのオブジェクトをSOAPの標準的なフォルト要素に変換してからクライアントに返します。このようにプロデューサから受け取ったフォルト要素は、CachéのWebサービスコンシューマによって、%SOAP.Faultオブジェクトに自動的に変換されます。

 %SOAP.Faultオブジェクトには、次表のようなプロパティがあります。

%SOAP.Faultオブジェクトのプロパティ
プロパティ 説明
detail フォルトの原因に関する情報
faultactor フォルトを生成したサービスのURI
faultcode SOAPの仕様で定義されているSOAPフォルトコード
faultstring フォルトの原因に関する説明

 Webサービスプロデューサ側では、エラーの可能性がある箇所すべてでSOAPフォルトを生成させる必要があります。しかし、SOAPフォルト生成コードが何度も実行される事態は回避しなければなりません。そのためには、エラーコードと詳細をパラメータとして受け取り、適切なSOAPフォルトを生成する、次のようなメソッドを用意しておく必要があります。

ClassMethod ApplicationError(code, detail)
{
    set fault=##class(%SOAP.Fault).%New()
    set fault.faultcode=code
    set fault.detail=detail
    set fault.faultstring="application error"
    do ..ReturnFault(fault)
}

 このメソッドは、%SOAP.WebService ReturnFaultメソッドを呼び出し、Webサービスの実行を即座に停止し、有効なSOAPメッセージをクライアントに返します。

サンプルアプリケーションについて

 Cachéでは、Webサービスの演習用に、前述したサンプルカタログページ「SOAP.Demo」が用意されています(http://localhost:57772/csp/samples/SOAP.Demo.cls)。生成されたソースコードは、SAMPLESネームスペース内の「SOAPDemo」内にありますので、参照してください。

まとめ

 今回は、CachéによるWebサービスの概要として、「Webサービスウィザード」と「Webサービスクライアントウィザード」を中心に解説しました。本稿は、Cachéドキュメントをもとに構成していますので、さらに詳しく知りたい方は、「ドキュメント」の「Caché言語バインディング」と「Cachéチュートリアル」の該当ページを参照してください。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
SQLも使えるオブジェクトデータベース「CACHE'」を知る連載記事一覧

もっと読む

この記事の著者

トップスタジオ(トップスタジオ)

1997年の創立以来、一貫してPC/IT関連書籍、雑誌等記事の制作業務を手掛けるプロフェッショナル集団。翻訳・編集・DTPのほか、技術監修や著作も多数。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2154 2008/09/04 18:50

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング