• 検索結果がありません。

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

ドキュメント内 jcom.book (ページ 45-55)

以下の節では、 WLS-to-COM アプ リ ケーシ ョ ン、 すなわち、 WebLogic jCOM を 使用し て WebLogic Server か ら COM オブジ ェ ク ト 上に メ ソ ッ ド を呼び出すアプ

リ ケーシ ョ ン を準備およびデプ ロ イする方法を説明し ます。

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

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

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

WebLogic Server の準備

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

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

COM アプ リ ケーシ ョ ンを ネ イ テ ィ ブ モー ド で実行するには、 WebLogic Server が COM アプ リ ケーシ ョ ン マシンにイ ン ス ト ール さ れてい る必要があ

り ます。 ただ し、 COM アプ リ ケーシ ョ ン マシン ご と に 別個の WebLogic Server ラ イ セン スが必要 と い う わけではあ り ません。

ネ イ テ ィ ブ モー ド で実行する には、 WebLogic Server が Windows マシンで 動作し てい る必要があ り ます。

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

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

COM

1. COM アプ リ ケーシ ョ ン を コー ド 化し ます。3-3 ページの 「COM アプ リ ケー シ ョ ンの コー ド化」 を参照し て く だ さ い。

2. com2javaツールで COM オブジ ェ ク ト か ら Java ク ラ ス を生成し ます。3-3 ページの 「com2java GUI ツールでの Java ク ラ スの生成」 を参照し て く だ さ い。

3. WebLogic Server 用に ク ラ ス をパ ッ ケージ化し ます。3-4 ページの

「WebLogic Server 用の Java ク ラ スのパ ッ ケージ化」 を参照し て く だ さ い。

4. COM アプ リ ケーシ ョ ン を起動し ます。3-4 ページの 「COM アプ リ ケーシ ョ ンの起動」 を参照し て く だ さ い。

WebLogic Server

1. サーバを起動し ます。3-4 ページの 「サーバの起動」 を参照し て く だ さ い。

2. WebLogic Server Administration Console で、 必要に応じ て COM を有効に し コ ン フ ィ グ レーシ ョ ン し ます。3-5 ページの 「サーバ リ ス ン ポー ト 上での COM 呼び出し の有効化」 を参照し て く だ さ い。

3. 他の Java オブジ ェ ク ト と 同じ よ う に COM オブジ ェ ク ト を使用し ます。

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

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

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

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

必要に応じ て COM アプ リ ケーシ ョ ン を コー ド 化し ます。

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

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

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

1. com2java GUI ツールを実行する には、 次の手順に従います。

a. WEBLOGIC_HOME/server/binデ ィ レ ク ト リ へ移動し ます ( あ る いは、 こ のデ ィ レ ク ト リ を CLASSPATH に追加し ます )。

b. COM マシ ンでコ マン ド シ ェルを開き、com2java.exeフ ァ イ ルを起動し ます。

> com2java

2. 一番上のフ ィ ール ド で適切な型 ラ イ ブ ラ リ を選択し、 [Java package] テキ ス ト ボ ッ ク スに、 生成さ れた フ ァ イルを含むパ ッ ケージの名前を入力し ます。

com2javaツールでは、 特定の型ラ イ ブ ラ リ に対し て指定し た直前のパ ッ ケージ名を記憶し ています。

3. [Generate Proxies] を ク リ ッ ク し て、 Java ク ラ ス フ ァ イルを生成し ます。

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

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

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

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

Java ク ラ ス フ ァ イ ルを生成し てそれを適切にパ ッ ケージ化し た ら、あ と は COM アプ リ ケーシ ョ ン を起動すれば、 WebLogic Server に公開する COM オブジ ェ ク

ト を イ ン ス タ ン ス化および実行でき ます。

WebLogic Server の準備

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

サーバの起動

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

WebLogic Server の準備

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

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

1. Administration Console を起動し ます。

2. 左ペイ ンで、 サーバの名前を ク リ ッ ク し ます。

3. 右ペイ ンの [ 接続 ] タ ブを ク リ ッ ク し た後で [jCOM] タ ブを ク リ ッ ク し て、

[jCOM properties] 画面を表示し ます。

4. [COM を有効化 ] ボ ッ ク ス をチェ ッ ク し ます。

5. サーバを再起動し て設定を有効に し ます。 コ ン ソ ールを介し て [ ネ イ テ ィ ブ モー ド を有効化 ] ま たはその他の jCOM プ ロパテ ィ を設定する場合は、 サー バを再起動する前に行って く だ さ い。

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

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

の 「DCOM モー ド と ネ イ テ ィ ブ モー ド 」 を参照し て く だ さ い。

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

1. Administration Console を起動し ます。

2. 左ペイ ンで、 サーバの名前を ク リ ッ ク し ます。

3. 右ペイ ンの [ 接続 ] タ ブを ク リ ッ ク し た後で [jCOM] タ ブを ク リ ッ ク し て、

[jCOM properties] 画面を表示し ます。

4. [ネ イ テ ィ ブ モー ド を有効化 ] ボ ッ ク ス をチェ ッ ク し ます。

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

その他の必要な jCOM コ ン ソ ール プロパテ ィ を コ ン フ ィ グ レーシ ョ ン し ます。

詳細については、 jCOM プ ロパテ ィ に関する Console オン ラ イ ン ヘルプを参照し て く だ さ い。

jCOM コ ン フ ィ グ レーシ ョ ン を変更し た場合は、 サーバを再起動する必要があ り

ます。 Administration Console か ら も、 変更を有効にする ためにサーバを再起動 する必要のあ る こ と が示 さ れます。

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

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

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

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

デフ ォル ト コ ン ス ト ラ ク タは、 認証な し で ローカル ホ ス ト 上に COM ク ラ スの イ ン ス タ ン ス を作成し ます。

2 番目のコ ン ス ト ラ ク タは、 認証な し で特定のホ ス ト 上に COM ク ラ スの イ ン ス タ ン ス を作成し ます。

3 番目のコ ン ス ト ラ ク タは、 特定の認証でローカル ホ ス ト 上に COM ク ラ ス の イ ン ス タ ン ス を作成し ます。

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

4 番目の コ ン ス ト ラ ク タは、 特定の認証で特定のホ ス ト 上に COM ク ラ スの イ ン ス タ ン ス を作成し ます。

最後の コ ン ス ト ラ ク タは、 返さ れたオブジ ェ ク ト 参照を ラ ッ プする ために使 用でき ます。 こ れは COM ク ラ スの イ ン ス タ ン ス を参照し ます。

以下に 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 イ ン タ フ ェ ースか ら com2java に よ り 生成 さ れた Java イ ン タ フ ェ ースの使 い方

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 にア ク セ スする必要があ り ます。

ドキュメント内 jcom.book (ページ 45-55)

関連したドキュメント