第11章

RPCスタイルのWebサービスの操作

この章では、RPCスタイルのWebサービスを起動するページフローの作成方法について説明します。この章には、次のトピックが含まれています。

 
Top of page

RPCスタイルのWebサービスを使用するページフローについて

exteNd DirectorにはWebサービスページフローウィザードがあり、Webサービスを実行するページフロー作成の手助けをします。 このウィザードは、Webサービスアクティビティを使用してサービスを起動します。

Webサービスアクティビティは、ドキュメントスタイルのWSDLファイルのみをサポートしています。 ただし、Javaアクティビティを使用すると、RPCスタイルのWebサービスを起動するページフローを作成することができます。

例   次に、RPCスタイルのWebサービスを実行するページフローの例を示します。

RPCPageFlow

入力ページはランタイム時に次のようになります。

TemperatureIn

出力ページはランタイム時に次のようになります。

TemperatureOut

 
Top of page

RPCスタイルWebサービスを使用するページフローの作成

RPCスタイルのWebサービスをページフローで使用するには、次の操作を行う必要があります。

 
Top of section

Webサービスコンシューマの生成

Webサービスコンシューマを生成するには、Webサービスウィザードを実行する必要があります。 ウィザードを実行するときに、入力としてWSDLファイルを指定します。 この場合、WSDLファイルは、RPCスタイルのバインドを使用するWebサービスを説明します。

コンシューマのプロジェクト、パッケージ、およびディレクトリの指定   ランタイム時に見つかる生成されたクラスを確認するため、ウィザードを実行する場合は次の設定を指定する必要があります。

RPCWebServiceConsumerSettings

For more information    コンシューマの生成方法の詳細については、『ユーティリティツール』のWebサービスコンシューマの生成に関する章を参照してください。

ウィザードを実行したら、Webサービスクライアントランナーを実行してWebサービスコンシューマをテストできます。 ただし、この操作を行う前に次の操作を行う必要があります。

xxxClient.javaファイルの編集   生成されたxxxClient.javaファイルを使用する前に、次のことを確認してください。

WebサービスSDKに必要なアーカイブのプロジェクトへの追加   For more information    必要なアーカイブの完全なリストについては、『ユーティリティツール』のWebサービスコンシューマの生成に関する章を参照してください。

 
Top of section

Javaアクティビティクラスの記述

Javaアクティビティは、ページフローのコンテキスト内でJavaクラスを実行するシステムアクティビティです。 Javaアクティビティを使用すると、ユーザ操作なしに自動的に実行される、カスタムのビジネスロジックを記述できます。

Javaアクティビティウィザードを使用してJavaアクティビティを作成し、作成されたJavaクラステンプレートをコード化してページフローモデラーでアクティビティを追加することができます。

JavaアクティビティからWebサービスを起動する場合、次の操作を行うためにいくつかのJavaコードを含める必要があります。

また、このJavaアクティビティも、セッションオブジェクトで郵便番号(ZIP)を取得し、気温(TEMP)を設定するため、スコープパスAPIを使用することに注意してください。

サービスを起動するヘルパクラスの使用   exteNd DirectorAPIでは、Webサービスの起動に使用できるペルパクラスを提供しています。 このクラスは、WebServiceActivityHelperと呼ばれます。 com.novell.afw.portal.portlet.pfパッケージにあります。 次に、このヘルパクラスを使用するコードの例を示します。

  import com.sssw.wf.api.*;
  import com.novell.afw.portal.portlet.pf.*;
  
  public class TemperatureJavaActivity implements EbiJavaActivity {
  	 public TemperatureJavaActivity() {
      }
  
      public void invoke(EbiContext context) {
          
  	 	 System.out.println("TemperatureJavaActivity");
  	 	 try {
  	 	 	 
  	 	 	 WebServiceActivityHelper wsHelper
  	 	 	 	 = new WebServiceActivityHelper();
  	 	 	 net.xmethods.sd.TemperaturePortType remote =
  	 	 	 	 (net.xmethods.sd.TemperaturePortType)
  	 	 	 	 wsHelper.getRemote(
  	 	 	 	  net.xmethods.sd.TemperatureService.class,
  	 	 	 	  net.xmethods.sd.TemperaturePortType.class);
  
  	 	 	 // get the ZIP from the portlet session
  	 	 	 String zip =
  	 	 	  (String)context.getEbiWhiteboard().getScopedValue( "ZIP" );
  	 	 	 float f = remote.getTemp(zip);
  	 	 	 context.getEbiWhiteboard().setScopedValue(
  	 	 	  "TEMP", String.valueOf( f ) );
  	 	 
  	 	 }
  	 	 catch ( Exception e ) {
  	 	 	 throw new RuntimeException (e);
  	 	 }
  	 	 	 
  ...
  }

 
Top of section

ページフローのユーザインタフェースの作成

通常は、Webサービスを起動するページフローの出力ページだけではなく、入力ページも作成する必要があります。 入力ページでは、サービスに渡すパラメータの値を入力できます。 出力ページは、サービスにより返されたデータを表示します。

入力ページ

次に、サンプルの入力ページのHTMLを示します。

  <form name="form1" method="post" action="wsrp_rewrite?wsrp-urlType=blockingAction/wsrp_rewrite">
  <br/>
  	 <span class="portlet-form-field-label">
  	 	 Zip
  	 </span>
  	 <input class="portlet-form-field" type="name" name="zip" value="02630" size="20\x94 > 
  	 <br/><br/>
  	 <input type="submit" name="verb" value="Continue">
  </form>

出力ページ

次に、サンプルの出力ページのHTMLを示します。

  <form name="form1" method="post" action="wsrp_rewrite?wsrp-urlType=blockingAction/wsrp_rewrite">
  <br/>
  	 <span class="portlet-form-field-label">
  	 	 Zip Temperature : scopedpath?Session/TEMP/scopedpath
  	 </span>
  	 <br/><br/>
  	 <input type="submit" name="verb" value="Continue">
  </form>

この例では、返されたデータ(気温)はスコープパスの式を使用して取得されています。

  scopedpath?Session/TEMP/scopedpath

 
Top of section

ページフローの作成

ページフローは次のようになります。

RPCPageFlow

フローのスコープパスは次のとおりです。

RPCWebServiceScopedPaths

入力ページの実行後にコピー操作の指定  

HTML入力ページは、ユーザにより入力された郵便番号をSessionスコープの変数にコピーする実行後にコピー操作を指定します。

RPCCopyAfterInput




Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...