ORACLE JAPAN Server Release 6.1

 

  |  

  WebLogic Server ホーム   |     WebLogic jCOM ユーザーズ ガイド   |   前へ   |   次へ   |   目次   |   索引   |   PDF 版

WebLogic jCOM ツール

 

以下の節では、よく使用する WebLogic jCOM ツールについて説明します。

 


regjvm GUI ツール

WebLogic jCOM を使用すると、COM をサポートする言語で、あたかも COM オブジェクトであるかのように Java オブジェクトにアクセスできます。

そのためには、Java オブジェクトが実行される JVM の参照を(COM クライアント マシン上に)登録する必要があります。regjvm ツールを使用すると、マシン上ですべての JVM 参照を作成および管理できます。

注意: regjvm ツールでは、古いエントリと同名の新しいエントリが入力されても、古いエントリは上書きされません。このため、通信するマシンのホスト名またはポートを変更する必要がある場合は、古いエントリの登録を解除しなければなりません。そのためには、コマンド ライン ツールの regjvmcmd.exe か、または GUI ツールの regjvm.exe を使用します(どちらも jCOM\bin ディレクトリに格納されています)。

JVM のモード

COM クライアントから JVM には、以下のモードを使用してアクセスできます。

DCOM モード

DCOM モードでは、Java サーバ サイド上にネイティブ コードは不要です。このため、Java コードは Java 仮想マシンがインストールされている Unix マシンや他のマシン上に配置できます。Windows クライアント マシン上で JVM を登録する場合、サーバのホスト マシン名(ローカル コンポーネント用のローカルホストの場合もあります)とポート番号を定義します。


 
 

JVM 内の Java コードは、com.bea.jcom.Jvm.register("<jvm id>") を呼び出す必要があります。ここで <jvm id> は、regjvm で定義した JVM の ID です。また JVM は、指定した <jvm id> 用に regjvm ツールで定義したポートに設定された JCOM_DCOM_PORT プロパティで開始されなければなりません。

ネイティブ モード(プロセスの外部)

ネイティブ モードは、現在ローカル マシン上でのみ動作します。JVM 名以外にパラメータは必要ありません。


 

JVM 内の Java コードは、com.bea.jcom.Jvm.register("<jvm id>") を呼び出す必要があります。ここで <jvm id> は、regjvm で定義した JVM の ID です。また JVM は、設定された JCOM_NATIVE_MODE プロパティで開始されなければなりません。

ネイティブ モード(プロセスの内部)

プロセス内部のネイティブ モードを使用すると、Java オブジェクトを COM クライアント同じプロセスに実際にロードできます。もちろん、どちらのオブジェクトも同じマシン上に配置しなければなりません。


 

JVM は、com.bea.jcom.Jvm.register() を呼び出すか、またはクライアントの追加プロセスとして開始する必要があります。

regjvm GUI ツールのインタフェース

regjvm ツールを実行すると、ダイアログが表示されます。このダイアログは、以下の 2 つの部分に分かれています。

regjvm GUI ツールの DCOM モード オプション

標準オプション


 

詳細オプション


 

regjvm GUI ツールのネイティブ モード オプション

標準オプション


 

このモードの標準オプションは存在しません。

詳細オプション


 

regjvm GUI ツールのプロセス内ネイティブ モード オプション

標準オプション


 

詳細オプション


 
 

 


regjvmcmd コマンド ライン ツール

regjvmcmd は、前述の GUI ツール、regjvm のコマンド ライン バージョンです。このパラメータのまとめを参照するには、パラメータを指定せずに regjvmcmd を実行します。

最も単純な形式では、以下のものを指定します。

JVM を登録する必要がないか、またはその登録を変更する場合、まず regjvmcmd/unregister JvmId を使用してその登録を解除する必要があります。

 


java2com ツール

java2com ツールは、Java クラスを(Java の reflection メカニズムを使用して)解析し、以下のものを出力します。

IDL ファイルは、Microsoft's MIDL ツールでコンパイルする必要があります。

IDL ファイルとラッパーを生成するには、次のコマンドを使用して java2com ツールを起動します。

java com.bea.java2com.Main

このツールは、どのようなプラットフォームでも実行できます。WebLogic jCOM ランタイム jCOM.jarCLASSPATH 環境変数に含まれていることを確認してください。

java2com ツールは、次のダイアログ ボックスを表示します。


 

このダイアログ ボックスには、以下のフィールドが存在します(コンフィグレーションの変更は、ダイアログ ボックスの終了時に自動的に保存されます)。

  1. [Java Classes & Interfaces]

    java2com で解析する「ルート」Java クラスとインタフェースが存在します。これらは、CLASSPATH でアクセス可能でなければなりません。WebLogic jCOM はこれらのクラスを解析し、COM IDL 定義と、COM から Java クラスにアクセスするための Java DCOM マーシャリング コードを生成します。次に、そのクラスのパラメータまたはフィールドで使用されるクラスまたはインタフェースに対して同じ解析を繰り返し実行し、同様にアクセスできるすべての Java クラスとインタフェースを解析します。

    クラス名はスペースで区切って入力します。[...] ボタンをクリックすると、クラスのリストを表示して、そのリストから追加または削除を行うためのダイアログが表示されます。

  2. [Name of Generated IDL File]

    これは、生成される COM インタフェース定義言語(IDL)ファイルの名前です。myjvm と指定した場合は、myjvm.idl が生成されます。この名前は、Microsoft の MIDL コンパイラを使用して myjvm.idl をコンパイルするときに生成される型ライブラリの名前にも使用されます。

  3. [Output Directory]

    java2com が生成したファイルを出力するディレクトリです。デフォルトはカレント ディレクトリ(「.」)です。

  4. [Dump Analysis]

    java2com が発見したクラスをそのまま表示します。

  5. [Save Settings] と [Load Settings]

    [Save Settings] ボタンをクリックすると、現在の java2com 設定が保存されます。

    java2com は、起動時にカレント ディレクトリに java2com.ser 設定ファイルが存在するかどうかをチェックします。存在する場合、そのファイルから設定を自動的にロードします。

  6. [Names...]

    [Names...] ボタンをクリックすると、次のダイアログ ボックスが表示されます。


     

    クラス/インタフェース名ドロップダウン リストから「*」を選択すると、メンバー(フィールドまたはクラス)名の名前を入力するためのテキスト ボックスが表示されます。生成するクラスまたはインタフェースでそのメンバー名が見つかったときに使用される対応 COM 名を指定できます。この名前を空白のままにした場合、Java メンバーは COM インタフェースで生成される対応メンバーを持ちません。

    クラス/インタフェース名ドロップダウン リストから特定の COM クラス名またはインタフェースを選択すると、そのクラスまたはインタフェースのメンバーのセットがその下に表示されます。使用する COM 名を指定し、[Add this Class Name map] をクリックすることによって、選択したクラス/インタフェースを指定した COM 名にマップします。[Add this Class Name map] をクリックすると、選択したメンバーを指定した COM 名にマップできます。

  7. [Generate] ボタン

    ラッパーおよび IDL ファイルを生成します。

java2com が発見するパブリック Java インタフェースごとに、対応する COM インタフェース定義が作成されます。Java インタフェース名が com.bea.finance.Bankable の場合、生成される COM インタフェースの名前は、[Names ...] ダイアログで異なる名前を指定しない限り、ComBeaFinanceBankable となります。

java2com が発見するパブリック Java クラスごとに、対応する COM インタフェース定義が作成されます。Java クラス名が com.bea.finance.Account の場合、生成される COM インタフェースの名前は、[Names ...] ダイアログで異なる名前を指定しない限り、IComBeaFinanceAccount となります。また、Java クラスがパブリック デフォルト コンストラクタを持つ場合、java2com は、[Names ...] ダイアログで異なる名前を指定しない限り、COM クラス ComBeaFinanceAccount を生成します。

Java クラスが Java イベントを生成できる場合、生成される COM クラスは Java クラスによってサポートされるイベントに対応するソース インタフェース(COM イベント)を持ちます。

生成された IDL ファイルは、Microsoft の MIDL ツールを使用してコンパイルします。このツールは Visual C++ に付属しており、MS Web サイトからダウンロードできます。次のコマンド、

midl prodServ.idl

は、prodServ.tlb という型ライブラリを生成します。このライブラリは、以下の節で説明するとおり登録できます。

 


regtlb ツール

WebLogic jCOM の regtlb ツールは、COM のアーリー バインディング メカニズムを使用して Java オブジェクトにアクセスする COM Windows クライアントに型ライブラリを登録します。regtlb は、2 つのパラメータを取ります。最初のパラメータは、登録する型ライブラリ ファイルの名前です。2 番目は、型ライブラリに記述されている COM クラスが存在する JVM の ID です。


 

WebLogic jCOM java2com ツールで生成された IDL ファイルから型ライブラリが生成された場合、regtlb コマンドは、型ライブラリ内の各 COM クラスに対応する Java クラス名を自動的に調べます。型ライブラリの COM クラス記述の形式は次のとおりです。

Java class java.util.Observable (via jCOM))

java2com で生成された IDL ファイルから型ライブラリが生成されなかった場合、各 COM クラスに対してインスタンス化する Java クラスの名前を指定する必要があります。


 

このため、誰かが Atldll.Apple のインスタンスを作成しようとした場合、WebLogic jCOM は JVM MyJvm 内の com.bea.MyAppleClass をインスタンス化します。MyAppleClass クラスは、COM クラス Atldll.Apple によって実装される atldll.tlb から WebLogic jCOM の java2com ツールで生成された Java インタフェースを実装します。

 

back to top previous page