以下の節では、 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 にア ク セ スする必要があ り ます。