ナビゲーションをスキップ

WebLogic jCOM プログラマーズ ガイド

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

WebLogic Server から COM アプリケーションへの呼び出し

以下の節では、WLS-to-COM アプリケーションの 1 つである、WebLogic jCOM を使用して WebLogic Server から COM オブジェクト上にメソッドを呼び出すアプリケーションを準備およびデプロイする方法を説明します。

 


ネイティブ モードの特別な要件

ネイティブ モードを使用する WLS-to-COM アプリケーションには、特別な要件が 2 つあります。

 


WebLogic Server から COM アプリケーションを呼び出す主な手順

この節では、WebLogic Server から COM アプリケーションへ呼び出す主な手順を簡単に説明します。詳細については、以降の節で説明します。

COM 側

  1. COM アプリケーションをコード化します。「COM アプリケーションのコード化」を参照してください。
  2. com2java ツールで COM オブジェクトから Java クラスを生成します。「com2java GUI ツールでの Java クラスの生成」を参照してください。
  3. WebLogic Server 用にクラスをパッケージ化します。「WebLogic Server 用の Java クラスのパッケージ化」を参照してください。
  4. COM アプリケーションを起動します。「COM アプリケーションの起動」を参照してください。

WebLogic Server 側

  1. サーバを起動します。「サーバの起動」を参照してください。
  2. WebLogic Server Administration Console で、必要に応じて COM を有効にしコンフィグレーションします。「サーバ リスン ポート上での COM 呼び出しの有効化」を参照してください。
  3. 他の Java オブジェクトと同じように COM オブジェクトを使用します。

 


COM アプリケーションの準備

以下の節では、WebLogic Server がオブジェクトでメソッドを呼び出せるよう COM クライアントを準備する方法について説明します。

COM アプリケーションのコード化

com2java GUI ツールでの Java クラスの生成

COM 型ライブラリに対して com2java GUI ツールを実行すると、COM 型ライブラリ内のクラスとインタフェースに対応する Java クラス ファイルの集合が生成されます。

以降で、GUI ツールでの Java クラスの生成を示します。WebLogic jCOM ツール全般の詳細については、「jCOM ツールの詳細」を参照してください。

  1. com2java GUI ツールを実行するには、次の手順に従います。
    1. WEBLOGIC_HOME/server/bin ディレクトリに移動します (あるいは、このディレクトリを CLASSPATH に追加します)。
    2. COM マシンでコマンド シェルを開き、com2java.exe ファイルを起動します。

    > com2java

  1. 一番上のフィールドで適切な型ライブラリを選択し、[Java package] テキスト ボックスに、生成されたファイルを含むパッケージの名前を入力します。com2java ツールでは、特定の型ライブラリに対して指定した直前のパッケージ名を記憶しています。
  2. [Generate Proxies] をクリックして、Java クラス ファイルを生成します。

WebLogic Server 用の Java クラスのパッケージ化

COM オブジェクトを EJB から呼び出す場合は、WebLogic Server が検出できるように、com2java で生成するクラス ファイルを EJB .jar にパッケージ化する必要があります。生成したファイルは、特定のパッケージに格納できます。たとえば、Excel 型ライブラリのファイルをすべて excel という Java パッケージに格納できます。

EJB .jar ファイルのパッケージ化の詳細については、『WebLogic エンタープライズ JavaBeans (EJB) プログラマーズ ガイド』の「エンタープライズ JavaBean の実装」を参照してください。

COM アプリケーションの起動

Java クラス ファイルを生成して適切にパッケージ化したら、COM アプリケーションを起動すれば、WebLogic Server にエクスポーズする COM オブジェクトをインスタンス化および実行できます。

 


WebLogic Server の準備

以下の節では、COM アプリケーションのオブジェクト上のメソッドを呼び出せるよう WebLogic Server を準備する方法を説明します。

サーバの起動

WebLogic Server を起動します。「サーバの起動と停止」を参照してください。

サーバ リスン ポート上での COM 呼び出しの有効化

WebLogic Server をインストールすると自動的に jCOM がインストールされますが、jCOM を有効にする必要があります。これによって、リスン ポート上で COM の呼び出しをリスンするようにサーバに知らせます。

  1. Administration Console を起動します。
  2. 左ペインで、サーバの名前をクリックします。
  3. 右ペインの [プロトコル] タブをクリックした後で [jCOM] タブをクリックして、jCOM プロパティ画面を表示します。
  4. [COM を有効化] ボックスをチェックします。
  5. サーバを再起動して設定を有効にします。コンソールを介して [ネイティブ モードを有効化] またはその他の jCOM プロパティを設定する場合は、サーバを再起動する前に行ってください。

ネイティブ モードの有効化 (必要な場合)

WebLogic Server と COM アプリケーションをネイティブ モードで通信させる場合は、WebLogic Server コンソールを介してすぐに有効化します。ネイティブ モードを使用するかどうかを判断する際は、「WebLogic jCOM の概要」の「DCOM モードとネイティブ モード」を参照してください。

ネイティブ モードを有効化するには、以下の手順に従います。

  1. Administration Console を起動します。
  2. 左ペインで、サーバの名前をクリックします。
  3. 右ペインの [プロトコル] タブをクリックした後で [jCOM] タブをクリックして、jCOM プロパティ画面を表示します。
  4. [ネイティブ モードを有効化] ボックスをチェックします。

その他の関連するコンソール プロパティのコンフィグレーション

その他の必要な jCOM コンソール プロパティをコンフィグレーションします。詳細については、jCOM プロパティに関する 「Console オンライン ヘルプ」を参照してください。

jCOM コンフィグレーションを変更した場合は、サーバを再起動する必要があります。Administration Console からも、変更を有効にするためにサーバを再起動する必要のあることが示されます。

COM オブジェクトを呼び出すためのサーバ コードの準備

COM オブジェクトを呼び出すためにサーバ コードを準備します。

 


com2java により生成された Java クラスの使い方

com2java ツールは、型ライブラリ内で COM クラスを発見するたびにその COM クラスにアクセスするための Java クラスを生成します。生成された Java クラスは、複数のコンストラクタを持ちます。

以下に DataLabelProxy クラスから生成されたコンストラクタのサンプルを示します。

public DataLabelProxy() {} 
	public DataLabelProxy(Object obj) throws java.io.IOException {
super(obj, DataLabel.IID);
	} 
	protected DataLabelProxy(Object obj, String iid) throws
java.io.IOException
	{
	super(obj, iid);
	} 
	public DataLabelProxy(String CLSID, String host, boolean
deferred) throws java.net.UnknownHostException,
java.io.IOException{ super(CLSID, DataLabel.IID, host, null);
	} 
	protected DataLabelProxy(String CLSID, String iid, String host,
AuthInfo authInfo) throws java.io.IOException { super(CLSID,
iid, host, authInfo);
	} 

 


COM インタフェースから com2java により生成された Java インタフェースの使い方

COM インタフェースのメソッドは、特定のインタフェースを介してオブジェクトの参照を返すことができます。

たとえば、Excel 型ライブラリ (Excel8.olb) は、_Application COM インタフェースを定義し、そのメソッド Add は COM IDL で次のように定義されます。

[id(0x0000023c), propget, helpcontext(0x0001023c)] 
HRESULT Workbooks([out, retval] Workbooks** RHS); 

このメソッドは、Workbooks COM インタフェースを実装するオブジェクトの参照を返します。Workbooks インタフェースは _Application インタフェースと同じ型ライブラリに定義されているので、com2java ツールは作成する _Application Java インタフェースに次のメソッドを生成します。

/** * getWorkbooks. 
* 
* @return 戻り値。 Workbooks への参照
* @exception java.io.IOException 通信に問題がある場合 
* @exception com.bea.jcom.AutomationException リモート サーバが例外を送出する場合 */ 
public Workbooks getWorkbooks () throws java.io.IOException, com.bea.jcom.AutomationException;

生成された _ApplicationProxy Java クラスのメソッドの実装が見えるようになります。

/** 
* getWorkbooks. 
* 
* @return 戻り値。 Workbooks への参照
* @exception java.io.IOException 通信に問題が
ある場合 
* @exception com.bea.jcom.AutomationException リモート サーバが
例外を送出する場合 
*/ 
public Workbooks getWorkbooks () throws java.io.IOException, 
com.bea.jcom.AutomationException{ com.bea.jcom.MarshalStream 
marshalStream = newMarshalStream("getWorkbooks"); 
marshalStream = invoke("getWorkbooks", 52, marshalStream); 
Object res = marshalStream.readDISPATCH("return value"); 
Workbooks returnValue = res == null ? null : new 
WorkbooksProxy(res); 
checkException(marshalStream, 
marshalStream.readERROR("HRESULT")); 
return returnValue;
}

見て分かるとおり、getWorkbooks メソッドは生成された WorkbooksProxy Java クラスを内部的に利用します。前述のとおり、com2java ツールは、Workbooks 戻り値型を持つメソッドを生成します。Workbooks インタフェースは _Application と同じ型ライブラリに定義されているからです。

Workbooks インタフェースが異なる型ライブラリに定義されている場合、WebLogic jCOM は次のコードを生成します。

/** 
* getWorkbooks. 
* 
* @return 戻り値。 Workbooks への参照
* @exception java.io.IOException 通信に問題が
ある場合 
* @exception com.bea.jcom.AutomationException リモート サーバが
例外を送出する場合 
*/ 
public Object getWorkbooks () throws java.io.IOException, 
com.bea.jcom.AutomationException;

この場合、生成されたプロキシ クラスを明示的に使用して返された Workbooks にアクセスする必要があります。

Object wbksObj = app.getWorkbooks(); 
Workbooks workbooks = new WorkbooksProxy(wbObj);

COM アプリケーション オブジェクトの管理の詳細については、J-Integra の Web サイトで提供されている COM のドキュメント (http://j-integra.intrinsyc.com/support/com/doc/index.htm) を参照してください。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次