Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

第6章 アプリケーションの開発(Java言語)> 6.5 クライアントアプリケーションのプログラミング(動的起動インタフェース)

6.5.4 インタフェースリポジトリからサーバアプリケーション情報の獲得

 インタフェースリポジトリには、IDLで定義されたモジュール名、インタフェース名、オペレーション名およびパラメタが階層構造で格納されます。サーバアプリケーションの情報を獲得するため、以下の手順で検索を行います。

(1)org.omg.CORBA.InterfaceDefオブジェクトリファレンスの獲得

 インタフェースリポジトリからサーバアプリケーションの情報を獲得するためには、org.omg.CORBA.InterfaceDefオブジェクトのオブジェクトリファレンスが必要です。org.omg.CORBA.Object._get_interface_def()メソッドを使用します。

  //org.omg.CORBA.InterfaceDefオブジェクトリファレンス取得
  org.omg.CORBA.Object intf_obj = target._get_interface_def();
  org.omg.CORBA.InterfaceDef intf = org.omg.CORBA.InterfaceDefHelper.narrow( intf_obj );

(2)org.omg.CORBA.OperationDefオブジェクトリファレンスの獲得

 org.omg.CORBA.InterfaceDef.lookup_name()メソッドにより、インタフェースリポジトリから指定されたメソッドを検索します。パラメタとしてサーバアプリケーションのメソッド名を指定します。結果として、指定したメソッド情報が格納されたorg.omg.CORBA.OperationDefオブジェクトのオブジェクトリファレンスが通知されます。

  //メソッドのorg.omg.CORBA.OperationDefオブジェクトリファレンス取得
  String name = new String( "calcurate" ); 
  org.omg.CORBA.Contained[] intf_opr =
  intf.lookup_name( name, -1, org.omg.CORBA.DefinitionKind.dk_Operation, false );

(3)パラメタ情報の獲得

 org.omg.CORBA.Contained.describe()メソッドにより、サーバアプリケーションがもっているメソッドのパラメタの情報(パラメタの名前、個数、パラメタの型など)をインタフェースリポジトリから検索します。パラメタとして、org.omg.CORBA.OperationDefオブジェクトリファレンスを指定します。

  org.omg.CORBA.ContainedPackage.Description desc = intf_opr[0].describe();
  //指定されたメソッドのパラメタ情報を検索

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005