BEA
WebLogic
Server
™
WebLogic jCOM
プロ
限定的権利条項
本ソ フ ト ウ ェ アおよびマニ ュ アルは、 BEA Systems, Inc. 又は日本ビー ・ イー ・ エー ・ シ ス テムズ 株式会社 ( 以下、 「BEA」 と いい ます ) の使用許諾契約に基づいて提供さ れ、 その内容に同意する 場合にのみ使用する こ と ができ、 同契約の条項通 り にのみ使用ま たはコ ピーする こ と ができ ます。 同契約で明示的に許可さ れてい る以外の方法で同 ソ フ ト ウ ェ アを コ ピーする こ と は法律に違反し ます。 こ のマニ ュ アルの一部ま たは全部を、 BEA か ら の書面に よ る事前の同意な し に、 複写、 複 製、 翻訳、 あ る いはいかな る電子媒体ま たは機械可読形式への変換も行 う こ と はで き ません。 米国政府に よ る使用、 複製 も し く は開示は、 BEA の使用許諾契約、 および FAR 52.227-19 の 「Commercial Computer Software-Restricted Rights」 条項のサブパ ラ グ ラ フ (c)(1)、 DFARS
252.227-7013 の 「Rights in Technical Data and Computer Software」 条項のサブパラ グ ラ フ (c)(1)(ii) 、 NASA FAR 補遺 16-52.227-86 の 「Commercial Computer Software--Licensing」 条項のサ
ブパラ グ ラ フ (d)、 も し く はそれ ら と 同等の条項で定め る制限の対象 と な り ます。 こ のマニ ュ アルに記載さ れてい る内容は予告な く 変更 さ れる こ と があ り 、 ま た BEA に よ る責務を 意味する も のではあ り ません。 本ソ フ ト ウ ェ アおよびマニ ュ アルは 「現状のま ま」 提供さ れ、 商 品性や特定用途への適合性を始め と する ( ただ し、 こ れ ら には限定 さ れない ) いかな る種類の保 証も与え ません。 さ ら に、 BEA は、 正当性、 正確 さ、 信頼性などについて、 本ソ フ ト ウ ェ アま た はマニ ュ アルの使用 も し く は使用結果に関し ていかな る確約、 保証、 あ るいは表明も行いません。
商標または登録商標
BEA、 Jolt、 Tuxedo、 および WebLogic は BEA Systems, Inc. の登録商標です。 BEA Builder、 BEA Campaign Manager for WebLogic、 BEA eLink、 BEA Manager、 BEA WebLogic Commerce Server、 BEA WebLogic Enterprise、 BEA WebLogic Enterprise Platform、 BEA WebLogic Express、 BEA WebLogic Integration、 BEA WebLogic Personalization Server、 BEA WebLogic Platform、 BEA WebLogic Portal、 BEA WebLogic Server、 BEA WebLogic Workshop、 および How Business Becomes E-Business は、 BEA Systems, Inc の商標です。
その他の商標はすべて、 関係各社がその権利を有し ます。
WebLogic jCOM プロ グ ラ マーズ ガ イ ド
パー ト 番号 マニュアルの日付 ソ フ ト ウ ェ アのバージ ョ ン
目次
このマニュアルの内容
対象読者...viii
e-docs Web サイト ...viii
このマニュアルの印刷方法 ...viii 関連情報...ix サポート情報 ...ix 表記規則... x
1.
WebLogic jCOM
の概要
WebLogic jCOM とは ...1-1 用語に関する重要な注意...1-2 jCOM アーキテクチャ...1-3 jCOM を使用する理由...1-3 WebLogic jCOM の機能 ...1-5 WebLogic jCOM のサンプル...1-5 WebLogic jCOM アプリケーションのプランニング...1-6 ゼロ クライアントのデプロイメント...1-7 ゼロ クライアント デプロイメントのメリットとデメリット ...1-7 ゼロ クライアントのサンプル...1-8 アーリー バインディングとレイト バインディング...1-8 各バインディング モデルのメリットとデメリット...1-9 アーリー バインディングとレイト バインディングのサンプル ..1-10 DCOM モードとネイティブ モード...1-10 ネイティブ モードのメリットとデメリット ...1-112.
COM
クライアント
アプリケーションから
WebLogic
Server
への呼び出し
ネイティブ モードの特別な要件...2-1COM クライアントから WebLogic Server を呼び出す主な手順...2-2 WebLogic Server の準備 ...2-3
アクセス制御のコンフィグレーション ...2-6 java.util.Collection および java.util.Iterator へのアクセスの許可 ....2-7 ejb20.basic.beanManaged へのアクセスの許可...2-7 その他のコンソール プロパティのコンフィグレーション...2-8 COM クライアントの準備...2-8 必要なファイルのインストール ...2-8 jCOM ツール ファイル...2-8 WebLogic Server クラス ファイル - ネイティブ モードのみ ...2-9 WebLogic Server サーブレットからのオブジェクト参照モニカの取得 - ゼロ クライアントのみ ...2-9 Java ラッパーおよび IDL ファイルの生成 - アーリー バインディングのみ 2-10 ラッパー ファイルに関する注意 ...2-11 クライアント マシン レジストリへの WebLogic Server JVM の登録 .2-12 JVM の登録解除...2-13 ネイティブ モードを選択している場合...2-13 COM クライアント アプリケーションのコード化 ...2-14 レイト バインド アプリケーション ...2-14 アーリー バインド アプリケーション...2-15 COM クライアントの起動 ...2-15 ネイティブ モードでの COM-to-WLS アプリケーションの実行...2-15 アウト オブ プロセスで JVM を実行するネイティブ モード ...2-16 イン プロセスで JVM を実行するネイティブ モード...2-18
3.
WebLogic Server
から
COM
アプリケーションへの呼び出
し
ネイティブ モードの特別な要件...3-1
WebLogic Server から COM アプリケーションを呼び出す主な手順 ...3-2 COM アプリケーションの準備 ...3-2 COM アプリケーションのコード化 ...3-3 com2java GUI ツールでの Java クラスの生成 ...3-3 WebLogic Server 用の Java クラスのパッケージ化...3-4
COM アプリケーションの起動...3-4 WebLogic Server の準備 ...3-4 サーバの起動...3-4 サーバ リスン ポート上での COM 呼び出しの有効化 ...3-5 ネイティブ モードの有効化 ( 必要な場合 ) ...3-5 その他の関連するコンソール プロパティのコンフィグレーション ...3-6 COM オブジェクトを呼び出すためのサーバ コードの準備...3-6 com2java により生成された Java クラスの使い方 ...3-6 COM インタフェースから com2java により生成された Java インタフェース
の使い方 ...3-7
4.
jCOM
ツールの詳細
com2java ...4-1 com2java の使い方 ...4-2 型ライブラリの選択 ...4-2 Java パッケージ名の指定 ...4-3 オプション ...4-3 プロキシの生成...4-5 com2java により生成されたファイル ...4-5 列挙値 ...4-6 COM インタフェース...4-6 COM クラス...4-7 java2com ...4-9 regjvm...4-13 JVM モード ...4-13 DCOM モード ...4-14 ネイティブ モード アウト オブ プロセス...4-15 ネイティブ モード イン プロセス ...4-16 regjvm GUI ツールのユーザ インタフェース...4-17 regjvm GUI ツールの DCOM モードオプション ...4-18 regjvm GUI ツールのネイティブ モード オプション ...4-20 regjvm GUI ツールのプロセス内ネイティブ モード オプション .4-21 regjvmcmd...4-23 regtlb... 4-23COM コードへの変更 ...5-2
セキュリティの変更...5-2 コンフィグレーションの変更...5-3
このマニュ アルの内容
こ のマニ ュ アルでは、 WebLogic Server の機能であ る jCOM の使用方法について 説明し ます。 jCOM を使用する こ と に よ り、 2 つのアプ リ ケーシ ョ ン を記述する こ と ができ ます。 WebLogic Server 上にあ る Java オブジ ェ ク ト の メ ソ ッ ド の作成 および呼び出し を行 う Common Object Model (COM) ク ラ イ アン ト アプ リ ケー シ ョ ン と 、 WebLogic Server の外部に配置さ れた COM オブジ ェ ク ト 上の メ ソ ッ ド の作成 と 呼び出し を行 う WebLogic Server アプ リ ケーシ ョ ンです。
こ のマニ ュ アルの構成は次の と お りです。
第 1 章 「WebLogic jCOM の概要」 では、 WebLogic jCOM の機能 と アーキテ ク チャ について概説し 、 アプ リ ケーシ ョ ン開発の計画に役立つ情報を提供 し ます。
第 2 章 「COM ク ラ イ アン ト アプ リ ケーシ ョ ンか ら WebLogic Server への呼 び出し 」 では、 COM ク ラ イ アン ト か ら WebLogic Server 上の メ ソ ッ ド を呼 び出すために WebLogic jCOM を使用する方法について説明し ます。
第 3 章 「WebLogic Server か ら COM アプ リ ケーシ ョ ンへの呼び出し」 では、
WebLogic Server か ら COM オブジ ェ ク ト 上の メ ソ ッ ド を呼び出すために WebLogic jCOM を使用する方法について説明し ます。
第 4 章 「jCOM ツールの詳細」 では、 jCOM アプ リ ケーシ ョ ンで使用する ツールの詳細について説明し ます。
第 5 章 「ア ッ プグ レー ド に関する考慮事項」 では、 WebLogic jCOM 6.1 か ら WebLogic jCOM 7.0 へア ッ プグ レー ド する方法について説明し ます。
こ のマニ ュ アルは、 WebLogic Server と 相互運用する COM アプ リ ケーシ ョ ン を 構築する アプ リ ケーシ ョ ン開発者を対象 と し ています。 こ のマニ ュ アルは、 Web テ ク ノ ロ ジ、 Common Object Model、 Distributed Common Object Model、 オブ ジ ェ ク ト 指向プ ロ グ ラ ミ ン グ手法、 および Java プ ロ グ ラ ミ ング言語に読者が精 通し てい る こ と を前提 と し て書かれています。
e-docs Web
サイ ト
BEA 製品の ド キ ュ メ ン ト は、 BEA の Web サ イ ト で入手でき ます。 BEA のホー
ム ページで [ 製品の ド キ ュ メ ン ト ] を ク リ ッ ク し ます。
このマニュ アルの印刷方法
Web ブ ラ ウザの [ フ ァ イ ル|印刷 ] オプシ ョ ン を使用する と 、 Web ブ ラ ウザか ら こ のマニ ュ アルを一度に 1 章ずつ印刷で き ます。 こ のマニ ュ アルの PDF 版は、 Web サ イ ト で入手でき ます。 PDF を Adobe Acrobat Reader で開 く と 、 マニ ュ アルの全体 ( ま たは一部分 ) を書籍の形式で印 刷で き ます。 PDF を表示するには、 WebLogic Server ド キ ュ メ ン ト のホーム ペー ジ を開き、 [ ド キ ュ メ ン ト のダ ウ ン ロー ド ] を ク リ ッ ク し て、 印刷する マニ ュ ア ルを選択し ます。Adobe Acrobat Reader は Adobe の Web サ イ ト (http://www.adobe.co.jp) で無料で
関連情報
BEA の Web サ イ ト では、 WebLogic Server の全マニ ュ アルを提供し ています。
サポー ト 情報
BEA の ド キ ュ メ ン ト に関する ユーザか ら のフ ィ ー ド バ ッ ク は弊社に と っ て非常 に重要です。 質問や意見などがあれば、 電子 メ ールで [email protected] ま でお送 り く だ さ い。 寄せら れた意見については、 WebLogic Server の ド キ ュ メ ン ト を作成および改訂する BEA の専門の担当者が直に目を通し ます。 電子 メ ールの メ ッ セージには、 ご使用の ソ フ ト ウ ェ アの名前 と バージ ョ ン、 およ び ド キ ュ メ ン ト の タ イ ト ル と 日付をお書き添え く だ さ い。 本バージ ョ ンの BEAWebLogic Server について不明な点があ る場合、 または BEA WebLogic Server の
イ ン ス ト ールおよび動作に問題があ る場合は、 BEA WebSupport (www.bea.com)
を通じ て BEA カ ス タ マ サポー ト ま でお問い合わせ く だ さ い。 カ ス タ マ サポー ト への連絡方法については、 製品パ ッ ケージに同梱 さ れてい る カ ス タ マ サポー ト カー ド に も記載 さ れています。 カ ス タ マ サポー ト では以下の情報をお尋ねし ますので、 お問い合わせの際はあ ら か じ めご用意 く だ さ い。 お名前、 電子 メ ール ア ド レ ス、 電話番号、 フ ァ ク ス番号 会社の名前 と 住所 お使いの機種 と コー ド 番号 製品の名前 と バージ ョ ン 問題の状況 と 表示さ れ るエ ラー メ ッ セージの内容
こ のマニ ュ アルでは、 全体を通し て以下の表記規則が使用さ れています。 表記法 適用 〔Ctrl〕 + 〔Tab〕 複数のキーを同時に押す こ と を示す。 斜体 強調ま たは書籍の タ イ ト ルを示す。 等幅テキスト コ ー ド サンプル、 コ マ ン ド と そのオプシ ョ ン、 デー タ構造体 と そ の メ ンバー、 データ 型、 デ ィ レ ク ト リ 、 お よびフ ァ イ ル名 と その 拡張子を示す。 等幅テキ ス ト はキーボー ド か ら 入力する テキ ス ト も 示す。 例 : import java.util.Enumeration; chmod u+w * config/examples/applications .java config.xml float 斜体の等幅テ キスト 例コ ー ド 内の変数を示す。 : String CustomerName; すべて大文 字のテキ ス ト デバ イ ス名、 環境変数、 およ び論理演算子を示す。 例 : LPT1 BEA_HOME OR { } 構文の中で複数の選択肢を示す。
[ ] 構文の中で任意指定の項目を示す。
例 :
java utils.MulticastTest -n name -a address [-p portnumber] [-t timeout] [-s send] | 構文の中で相互に排他的な選択肢を区切 る。
例 :
java weblogic.deploy [list|deploy|undeploy|update]
password {application} {source} ... コ マン ド ラ イ ンで以下のいずれかを示す。 引数を複数回繰 り 返す こ と がで き る 。 任意指定の引数が省略 さ れてい る。 パ ラ メ ー タや値な どの情報を追加入力で き る 。 . . . コー ド サンプルま たは構文で項目が省略 さ れてい る こ と を示す。 表記法 適用
1
WebLogic jCOM
の概要
以下の節では、 WebLogic jCOM の概要を説明し ます。 1-1 ページの 「WebLogic jCOM と は」 1-3 ページの 「jCOM を使用する理由」 1-5 ページの 「WebLogic jCOM の機能」 1-5 ページの 「WebLogic jCOM のサンプル」 1-6 ページの 「WebLogic jCOM アプ リ ケーシ ョ ンのプ ラ ンニング」WebLogic jCOM
とは
WebLogic jCOM は、 WebLogic Server でデプ ロ イ さ れる Java/J2EE オブジ ェ ク ト
と 、 Microsoft Office 製品フ ァ ミ リ 、 Visual Basic オブジ ェ ク ト および C++ オブ ジ ェ ク ト 、 その他の コ ンポーネン ト オブジ ェ ク ト モデル / 分散コ ンポーネン ト オブジ ェ ク ト モデル (COM/DCOM 準拠 ) 環境で使用で き る Microsoft ActiveX コ ンポーネン ト と の間で双方向ア ク セ ス を可能にする ソ フ ト ウ ェ ア ブ リ ッ ジです。 通常 Microsoft のアプ リ ケーシ ョ ン と の通信には、 Web サービ ス を使用する方法 が推奨さ れます。 こ の種の通信を利用する ため、 従来の COM アプ リ ケーシ ョ ン か ら .NET へ移行する計画を立て る こ と をお薦め し ます。 jCOM は、 Java - COM 間の統合を必要 と する暫定的な ソ リ ューシ ョ ンへの移行経路 と し て提供さ れ、 小 規模なプロ ジ ェ ク ト やブ リ ッ ジ ソ リ ューシ ョ ンに適し ています。
市販 さ れている他の Java - COM ブ リ ッ ジ と は異な り 、jCOM は WebLogic Server において Java サ イ ド で動作する よ う に特別に設計さ れています。 jCOM を任意の
せん。 なお、 jCOM は WebLogic Server ス レ ッ ド を直接使用する ため、 サービ ス を COM オブジ ェ ク ト に対し て公開する ための非常に堅牢な手段 と な り ます。
注意: WebLogic jCOM 7.0 は、 WebLogic Server の一部 と し て動作し ます。 以前
のバージ ョ ンでは、 ス タ ン ド ア ロ ンの ソ フ ト ウ ェ ア ブ リ ッ ジ と し て動作 し てい ま し た。 WebLogic jCOM を ス タ ン ド ア ロ ンで実行し ないで く だ さ い。
WebLogic jCOM では、 オブジ ェ ク ト タ イ プの違いは意識 さ れな く な り ます。 つ
ま り 、 COM ク ラ イ アン ト には WebLogic Server オブジ ェ ク ト が COM オブジ ェ ク ト の よ う に見え、 WebLogic Server アプ リ ケーシ ョ ンには COM コ ンポーネン ト が Java オブジ ェ ク ト のよ う に見え ます。
WebLogic jCOM は以下の よ う に し て双方向を実現し ます。
Microsoft COM ク ラ イ アン ト が、 それ自体 COM コ ンポーネン ト であ る かの
よ う に WebLogic Server 内のオブジ ェ ク ト にア ク セス でき ます。 および
WebLogic Server 内のアプ リ ケーシ ョ ンが、 それ自体 Java オブジ ェ ク ト であ
る かの よ う に COM コ ンポーネン ト にア ク セ スで き ます。
用語に関する重要な注意
こ のプロ グ ラ ミ ング ガ イ ド では、 ア ク セ ス方向に よ っ てアプ リ ケーシ ョ ン を次 の 2 つの タ イ プに分けています。
アプ リ ケーシ ョ ン内で COM ク ラ イ ア ン ト が WebLogic Server オブジ ェ ク ト にア ク セ スする場合は、 「COM-to-WLS」 アプ リ ケーシ ョ ン。
アプ リ ケーシ ョ ン内で WebLogic Server が COM オブジ ェ ク ト にア ク セ スす る場合は、 「WLS-to-COM」 アプ リ ケーシ ョ ン。
jCOM を使用す る理由
jCOM
アーキテ ク チ ャ
WebLogic jCOM は、 Distributed Computing Environment Remote Procedure Call (DCE RPC) 上の COM/DCOM 分散コ ンポーネン ト イ ン フ ラ ス ト ラ ク チャ と Java Remote Method Protocol/Internet Inter-ORB Protocol (JRMP/IIOP) 上の Remote Method Invocation (RMI) 分散コ ンポーネン ト イ ン フ ラ ス ト ラ ク チャの両方を実
装する実行時コ ンポーネン ト を提供します。 こ れによ り 、 反対側のオブジ ェ ク ト も、 各環境のネ イ テ ィ ブ オブジ ェ ク ト の よ う に見え ます。
ま た、 WebLogic jCOM は、 両タ イ プの イ ン タ フ ェース間で変換を行 う 自動ツー ル も提供します。 こ れは、 前述のプロ ト コルで双方が通信する ために必要な
COM/DCOM プ ロ キシ と RMI ス タブを自動的に構築し ます。
WebLogic jCOM は、 DCOM 技術 と RMI 技術の間で必要な変換をすべて行い、 RMI ク ラ イ アン ト と し て WebLogic Server に接続します。 それか ら、 WebLogic Server にデプ ロ イ さ れてい る エン タープ ラ イ ズ Java Bean (EJB) に、 通常の EJB
ク ラ イ アン ト か らの要求 と 同じ よ う に、 要求を伝え ます。
同様に、 WebLogic Server にデプ ロ イ さ れてい る コ ンポーネン ト が DCOM オブ ジ ェ ク ト に よ っ て提供 さ れるサービ ス を要求する と 、 その要求は jCOM コ ン ポーネン ト に よ って、 WebLogic Server に よ り 発行さ れる通常の RMI ク ラ イ アン
ト 要求か ら DCOM 準拠要求に変換さ れ、 DCOM 環境内の該当する オブジ ェ ク ト へ伝え られます。 実行時フ ァ イ ルの他に も、 WebLogic jCOM には ク ラ イ アン ト およびサーバ環境 を コ ン フ ィ グ レーシ ョ ンする ためのツール と コ ンポーネン ト が用意さ れていま す。
jCOM
を使用する理由
WebLogic jCOM を使用する主な理由は以下の と お り です。 多様なハー ド ウ ェ アおよび ソ フ ト ウ ェ ア プ ラ ッ ト フ ォームにわた る分散型ア プ リ ケーシ ョ ン間の相互運用性を実現する ため。Microsoft の開発ツールや開発ス タ ッ フの訓練に多額の投資を し て き た こ と か ら、 Java ク ラ イ アン ト ソ フ ト ウ ェ アを記述せずに ク ラ イ ア ン ト アプ リ ケー シ ョ ン を WebLogic Server 上のビ ジネ ス ロ ジ ッ ク へア ク セ ス さ せたい と 考え る人を援助する ため。 完全に統合さ れたアプ リ ケーシ ョ ンの構築 と 既存コ ンポーネン ト の再利用の ために、 COM/DCOM と Java 環境の両方で利用でき る ス キルを活用し たい と 考え る e- ビ ジネス アプ リ ケーシ ョ ン構築者のニーズに応え る ため。 各環 境の詳細は、 別の環境に慣れた開発者にま っ た く 意識さ せない よ う にする こ と ができ ます。 WebLogic jCOM は、 異種の環境およびアプ リ ケーシ ョ ンの透過的な相互運用 と い う ソ フ ト ウ ェ ア業界の動向に従っ ています。
WebLogic jCOM の機能
WebLogic jCOM
の機能
WebLogic jCOM サブシ ス テムの主要な機能は以下の と お り です。 WebLogic jCOM は ク ラ イ ア ン ト に よ っ てア ク セ ス さ れるデータ型の存在を 隠すので、 最も適切な Java オブジ ェ ク ト と COM コ ンポーネン ト が動的に マ ッ プ さ れます。 WebLogic jCOM は、 オブジ ェ ク ト タ イ プのレ イ ト バイ ンデ ィ ング と アー リ ー バイ ンデ ィ ン グの両方をサポー ト し ています。 COM コ ン ポーネン ト を ホ ス ト する マシン 上にネ イ テ ィ ブ コー ド は必要あ りません。 内部的には、 WebLogic jCOM は Windows DCOM ネ ッ ト ワーク プ ロ ト コルを使用し て ローカルおよび リ モー ト COM コ ンポ ーネン ト と pure
Java 環境間の通信を実現し ます。
WebLogic jCOM は、 Windows プ ラ ッ ト フ ォームで動作する と きのパフ ォー
マン ス を最大限に高め るオプシ ョ ンの 「ネ イ テ ィ ブ モー ド」 をサポー ト し て います。1-10 ページの 「DCOM モー ド と ネ イ テ ィ ブ モー ド 」 を参照し て く だ さ い。
WebLogic jCOM は、 イ ベン ト 処理をサポー ト し ています。 た と えば、 標準 COM イベン ト メ カニズ ムを使用し て Visual Basic か ら Java イベン ト にア ク
セ スする こ と や、 Java オブジ ェ ク ト が COM コ ンポ ーネン ト イベン ト をサブ ス ク ラ イ ブする こ と ができ ます。
WebLogic jCOM
のサンプル
WebLogic Server には、 RPC ス タ イ ル Web サービ スおよび メ ッ セージ ス タ イ ル Web サービ ス を作成する両方の例 と 、 Web サービ ス を呼び出す Java および Microsoft VisualBasic ク ラ イ ア ン ト アプ リ ケーシ ョ ンの両方の例があ り ます。 WebLogic Server には、 次の各 jCOM サンプルが付属し てい ます。
ゼ ロ ク ラ イ アン ト イ ン ス ト ールを使用し て、 WebLogic Server 上にデプ ロ イ さ れてい る EJB に Excel Visual Basic アプ リ ケーシ ョ ン (VBA) ク ラ イ アン ト か ら ア ク セ スす る方法を示すサンプル。 ゼ ロ ク ラ イ アン ト イ ン ス ト ールでは、 Windows ク ラ イ ア ン ト マシンに WebLogic jCOM ソ フ ト ウ ェ アが必要あ り ません。 ただ し、 こ れを実現する には、 サーブレ ッ ト か ら 「オブジ ェ ク ト 参照モニカ」 を取 り 出し て COM ク ラ イ アン ト コー ド に配置する必要があ り ます。 アー リ ー バ イ ンデ ィ ング を使用し て、 WebLogic Server 上にデプ ロ イ さ れて い る EJB に Excel VBA ク ラ イ アン ト か ら ア ク セスす る方法を示すサンプル。
レ イ ト バイ ンデ ィ ング を使用し て、 WebLogic Server 上にデプ ロ イ さ れてい る EJB に Excel VBA ク ラ イ アン ト か ら ア ク セ スす る方法を示すサンプル。
WL_HOME\samples\server\src\examples\jcomデ ィ レ ク ト リ にサンプルがあ
り ます 。 WL_HOME は、 WebLogic Platform の最上位の イ ン ス ト ール デ ィ レ ク ト リ です 。 サンプルを作成し て実行する方法の詳細については、 ブ ラ ウ ザで Web ページ WL_HOME\samples\server\src\examples\jcom\package_summary.htmlを呼 び出し て く だ さ い。
WebLogic jCOM
アプ リ ケーシ ョ ンのプ ラ
ンニング
jCOM アプ リ ケーシ ョ ンの設計 と 構築の前に、 い く つか重要な決定をする必要が あ り ます 。 決定すべき こ と は、 次の と お り です。 アプ リ ケーシ ョ ンにゼロ ク ラ イ アン ト アーキテ ク チャ を採用するかど う か (COM-to-WLS のみ ) アー リ ー バ イ ンデ ィ ング と レ イ ト バ イ ンデ ィ ン グのどち ら を採用するか (COM-to-WLS のみ ) ネ イ テ ィ ブ モー ド と DCOM モー ド のどち ら で jCOM アプ リ ケーシ ョ ンを実 行するか (COM-to-WLS と WLS-to-COM の両方 )WebLogic jCOM ア プ リ ケーシ ョ ンの プ ラ ン ニ ン グ
こ の節では、 こ れ ら を決定する上で役立つ情報を提供し ます。
ゼロ
ク ラ イアン ト のデプロ イ メ ン ト
jCOM ゼ ロ ク ラ イ アン ト デプ ロ イ メ ン ト は実装が簡単です。 ク ラ イ アン ト マシ
ンには WebLogic jCOM 固有の ソ フ ト ウ ェ アは必要あ り ません。
オブジ ェ ク ト 参照モニカ (objref) モニカ文字列を使用し て、 WebLogic Server の
位置を COM ク ラ イ アン ト に コー ド 化し ます。objrefモニカ を生成し ます。 こ のモニカに よ っ て、 WebLogic Server の IP ア ド レ ス と ポー ト が エン コーデ ィ ン グ さ れます。 COM ク ラ イ アン ト コー ド のモニカ文字列はプ ロ グ ラ ムで取得する か、 コ ピーし て貼 り 付け る か、 あ るいは WebLogic Server サーブレ ッ ト か ら取得 し ます。 サーバ接続が確立 さ れる と 、 COM ク ラ イ アン ト は COM オブジ ェ ク ト を Java コ ンポーネン ト 内の イ ン タ フ ェースに リ ン ク でき ます。
ゼロ
ク ラ イアン ト
デプロ イ メ ン ト のメ リ ッ ト とデ メ リ ッ ト
次の表に、 ゼ ロ ク ラ イ アン ト 実装の メ リ ッ ト と デ メ リ ッ ト を示し ます。 メ リ ッ ト デ メ リ ッ ト ク ラ イ ア ン ト マシ ン レ ジ ス ト リ に WebLogic jCOM 固有の ソ フ ト ウ ェ ア を ロ ー ド する 必要がない。 WebLogic Server マシ ンの WL_HOME\bin デ ィ レ ク ト リ か ら jCOM 固有のツールをい く つか コ ピーする 必要 があ る。 レ イ ト バ イ ンデ ィ ン グ を使用する ので (1-8 ページの 「アー リ ー バ イ ンデ ィ ング と レ イ ト バイ ンデ ィ ング」 を参 照)、Java コ ンポーネ ン ト の変更に関 し て レ イ ト バ イ ンデ ィ ン グ と 同 じ柔軟性 が得 ら れ る 。 WebLogic Server の位置 と ポー ト 番号を COM ク ラ イ ア ン ト に コー ド 化する 必要 があ る ため、 サーバの位置が変更 さ れた 場合、 ソ ースコー ド 内の参照を再生成 し て変更 し な ければな ら ない。WebLogic jCOM デプ ロ イ メ ン ト で多数の COM ク ラ イ アン ト マシ ンが必要な場 合は、 ゼ ロ ク ラ イ アン ト モデルのプ ロ グ ラ ミ ン グ モデルが適し ています。
ゼロ
ク ラ イアン ト のサンプル
ゼ ロ ク ラ イ アン ト 実装の例 と し て、イ ン ス ト ール さ れている WebLogic Server の WL_HOME\samples\server\src\examples\jcom\zeroclientデ ィ レ ク ト リ に あ るサンプルを参照し て く だ さ い。アー リ ー
バイ ンデ ィ ング と レ イ ト
バイ ンデ ィ ング
バイ ンデ ィ ングでは、 ルーチン ま たはモジ ュールのシンボ リ ッ ク ア ド レ ス を物 理的ア ド レ スに置換し ます。 アー リ ー バ イ ンデ ィ ング と レ イ ト バイ ンデ ィ ング は、 と も に別のアプ リ ケーシ ョ ンのオブジ ェ ク ト へのア ク セ ス を提供し ます。 アー リ ー バ イ ン ド ア ク セ スでは、 ア ク セ スする オブジ ェ ク ト に関する情報はプ ロ グ ラ ムのコ ンパイ ル中に提供さ れ、 それ ら のオブジ ェ ク ト はコ ンパ イル時に評 価 さ れます。 こ の方法では、 サーバ アプ リ ケーシ ョ ンは型 ラ イ ブ ラ リ を提供し、 ク ラ イ アン ト アプ リ ケーシ ョ ンは ク ラ イ アン ト シ ス テ ムに ロー ド する ためにそ の ラ イ ブ ラ リ を識別する必要があ り ます。 レ イ ト バイ ン ド ア ク セス では、 ア ク セ スする オブジ ェ ク ト に関する情報はコ ン パイ ル時に提供さ れず、 こ れ らのオブジ ェ ク ト は実行時に動的に評価さ れます。 こ のため、 ア ク セ スする メ ソ ッ ド と プロパテ ィ が実際に存在するかど う かは、 プ ロ グ ラ ムを実行し てみて初めて分か り ます。 アプ リ ケーシ ョ ンでアー リ ーバ イ ン デ ィ ン グの利点が得 ら れな く な る (1-8 ページの 「アー リ ー バイ ンデ ィ ング と レ イ ト バイ ンデ ィ ング」 を参照)。 メ リ ッ ト デ メ リ ッ トWebLogic jCOM ア プ リ ケーシ ョ ンの プ ラ ン ニ ン グ
各バイ ンデ ィ ング
モデルのメ リ ッ ト と デ メ リ ッ ト
次の表に、 アー リ ー バイ ンデ ィ ング モデルの メ リ ッ ト と デ メ リ ッ ト を示し ます。 次の表に、 レ イ ト バ イ ンデ ィ ン グ モデルの メ リ ッ ト と デ メ リ ッ ト を示し ます。 アーリ ーバイ ンデ ィ ングのメ リ ッ ト アー リ ーバイ ンデ ィ ングのデ メ リ ッ ト レ イ ト バ イ ン ド 実装 よ り も 信頼性 が高い。 コ ンパ イ ル時の型チェ ッ ク に よ り デ バ ッ グが容易であ る 。 アプ リ ケーシ ョ ンのエン ド ユーザ が型 ラ イ ブ ラ リ を参照で き る 。 レ イ ト バ イ ン ド 実装に比べ、 実行 時の ト ラ ンザ ク シ ョ ンパフ ォーマ ン ス が向上する 。 型 ラ イ ブ ラ リ と ラ ッ パーを生成する 必 要があ る ため、 実装が複雑にな る。 型 ラ イ ブ ラ リ は ク ラ イ ア ン ト サ イ ド で、 ラ ッ パーはサーバサ イ ド で必要 と な る。 ク ラ イ ア ン ト と サーバが別個 のマシ ンで動作 し てい る場合、 型 ラ イ ブ ラ リ と ラ ッ パーは同 じ マシ ン上で生 成 し て、 必要 と さ れてい る シ ス テ ムに コ ピー し なければな ら ない。 レ イ ト バ イ ン ド ア ク セ ス が備え てい る柔軟性に欠け る 。 こ れは、Java コ ンポーネ ン ト に変更を加え た場合に ラ ッ パー と 型 ラ イ ブ ラ リ を再生成す る 必要があ る ため。 レ イ ト バ イ ン ド 実装に比べ、 実行時 の初期化が低速にな る 。 レ イ ト バイ ンデ ィ ングのメ リ ッ ト レ イ ト バイ ンデ ィ ングのデ メ リ ッ ト 実装が容易であ る。 オブジ ェ ク ト 参照が実行時にのみ評 価 さ れ る ので実装に柔軟性があ る 。 アー リ ーバ イ ン ド 実装に比べ、 実 行時の初期化が高速にな る。 コ ンパ イ ル時に型チ ェ ッ ク を実行で き ないので、 エ ラ ーが発生 しやす く な る 。 ア ク セ スす る メ ソ ッ ド と プ ロ パテ ィ が 実際に存在する かど う かは、 プ ロ グ ラ ム を実行 し てみ る まで分か ら ない。 アー リ ーバ イ ン ド 実装に比べ、 実行 時の ト ラ ンザ ク シ ョ ンパフ ォーマン ス が劣 る。アーリ ー
バイ ンデ ィ ング と レ イ ト
バイ ンデ ィ ングのサンプル
アー リ ー バ イ ンデ ィ ング実装の例 と し て、 イ ン ス ト ール さ れてい る WebLogic Server の WL_HOME\samples\server\src\examples\jcom\earlyboundデ ィ レ ク ト リ にあ る アー リ ー バ イ ン ド のサンプルを参照し て く だ さ い。 レ イ ト バイ ンデ ィ ング実装の例 と し て、 イ ン ス ト ール さ れてい る WebLogic Server の WL_HOME\samples\server\src\examples\jcom\lateboundデ ィ レ ク ト リ にあ る レ イ ト バイ ン ド のサンプルを参照し て く だ さ い。DCOM
モー ド と ネイテ ィ ブ
モー ド
DCOM (Distributed Component Object Model) モー ド は、Component Object Model (COM) を使用し て異な る コ ン ピ ュータ上のオブジ ェ ク ト 間の通信をサポー ト し
ます。 WebLogic jCOM アプ リ ケーシ ョ ンが DCOM モー ド で動作し てい る場合、
COM ク ラ イ アン ト は WebLogic Server と DCOM プ ロ ト コルで通信し ます。
ネ イ テ ィ ブ モー ド の場合、 COM ク ラ イ アン ト は WebLogic Server にネ イ テ ィ ブ 呼び出し を行い (COM-to-WLS)、 WebLogic Server は COM アプ リ ケーシ ョ ンに ネ イ テ ィ ブ呼び出し を行います。 ネ イ テ ィ ブ モー ド ではローカルのオペレーテ ィ ング シ ス テム と CPU に対し て個 別に コ ンパ イルおよび最適化 さ れた、 ネ イ テ ィ ブ コー ド の動的に ロー ド さ れ る ラ イ ブ ラ リ (DLL) が使用 さ れる ので、 COM-to-WLS アプ リ ケーシ ョ ンで も WLS-to-COM アプ リ ケーシ ョ ンで も、 ネ イ テ ィ ブ モー ド を使用する と パフ ォー マン スが向上し ます。 ま た、 ネ イ テ ィ ブ モー ド で動作し てい る COM-to-WLS アプ リ ケーシ ョ ンは、
COM ク ラ イ アン ト と WebLogic Server と の通信に WebLogic の T3/IIOP プ ロ ト コ
ルを使用し ます。 こ れに よ り 、 以下の利点が得られます。
ネ ッ ト ワーク の呼び出し が減るので、 DCOM 呼び出し を使用し た場合に比べ てパフ ォーマン スが向上する。
た と えば、 COM アプ リ ケーシ ョ ンで、 WebLogic Server への呼び出し に よ っ て値が返さ れる 100 のデータ要素を含むベク ト ルを作成する と し ます。 こ れ を DCOM モー ド で行 う と 、 サーバに対する 往復のネ ッ ト ワー ク呼び出し が
WebLogic jCOM ア プ リ ケーシ ョ ンの プ ラ ン ニ ン グ 100 回必要にな り ます。 ネ イ テ ィ ブ モー ド では、 1 回の往復の呼び出し で済 みます。 WebLogic Server のフ ェ イ ルオーバ機能 と ロー ド バ ランシ ング機能を利用で き る。 ただ し 、 ど ち ら の タ イ プのアプ リ ケーシ ョ ンで も、 作成さ れてい る ネ イ テ ィ ブ ラ イ ブ ラ リ は Windows 専用なので、ネ イ テ ィ ブ レ イ ト バ イ ン ド ア ク セ スの実装 では、 すべての COM ク ラ イ ア ン ト マシンに WebLogic Server を イ ン ス ト ールす る必要があ り ます。 ただ し、 COM アプ リ ケーシ ョ ン を実行する マシ ン ご と に別 個の WebLogic Server ライ セン スが必要 と い う わけではあ り ません。
ま た、 WLS-to-COM アプ リ ケーシ ョ ンの場合、 ネ イ テ ィ ブ モー ド で実行するに は、 WebLogic Server が Windows マシ ンで動作し てい る必要があ り ます。
ネイテ ィ ブ
モー ドのメ リ ッ ト とデ メ リ ッ ト
次の表に、 ネ イ テ ィ ブ モー ド 実装の メ リ ッ ト と デ メ リ ッ ト を示し ます。 メ リ ッ ト デ メ リ ッ ト COM-to-WLS アプ リ ケーシ ョ ンでは、 呼び出 し がネ ッ ト ワー ク 上で行われな いので、DCOM モー ド の場合に比べて パフ ォーマン ス が向上す る。 COM-to-WLS アプ リ ケーシ ョ ンで も WLS-to-COM アプ リ ケーシ ョ ンで も 、 作成 さ れてい る ネ イ テ ィ ブラ イ ブ ラ リ は Windows 専用なので、 ネ イ テ ィ ブ モー ド の実装では WebLogic Server をす べての COM マシ ンに イ ン ス ト ールする 必要があ る。 COM-to-WLS アプ リ ケーシ ョ ンでは、 WebLogic Server の ロー ド バ ラ ン シ ン グ 機能 と フ ェ イ ルオーバ機能を利用で き る 。 WLS-to-COM アプ リ ケーシ ョ ンの場合、 ネ イ テ ィ ブモー ド で実行す る には、WebLogic Server が Windows マシ ンで動
WLS-to-COM アプ リ ケーシ ョ ンの場合 、 COM オブジ ェ ク ト を WebLogic Server
と 同 じ マシ ンに イ ン ス ト ールす る と 、
WebLogic Server でネ ッ ト ワー ク 呼び出
し が不要にな る ので、 パフ ォーマ ン ス が向上す る。
2
COM
ク ラ イアン ト
アプ リ ケー
シ ョ ンから
WebLogic Server
へ
の呼び出し
こ の章では、 COM ク ラ イ アン ト か ら WebLogic Server 上の メ ソ ッ ド を呼び出す ために WebLogic jCOM を使用する方法について説明し ます。
2-1 ページの 「ネ イ テ ィ ブ モー ド の特別な要件」
2-2 ページの 「COM ク ラ イ アン ト か ら WebLogic Server を呼び出す主な手
順」 2-3 ページの 「WebLogic Server の準備」 2-8 ページの 「COM ク ラ イ アン ト の準備」 「ネ イ テ ィ ブ モー ド での COM-to-WLS アプ リ ケーシ ョ ンの実行」
ネイ テ ィ ブ
モー ド の特別な要件
COM-to-WLS アプ リ ケーシ ョ ン をネ イ テ ィ ブ モー ド で実行する ためには、 WebLogic Server を COM ク ラ イ アン ト マシ ンに イ ン ス ト ールする必要があ り ます。 ただ し、 COM ク ラ イ アン ト を実行する マシ ン ご と に別個の WebLogic
Server ラ イ セン スが必要 と い う わけではあ り ません。
ネ イ テ ィ ブ モー ド の詳細については、2-15 ページの 「ネ イ テ ィ ブ モー ド での COM-to-WLS アプ リ ケーシ ョ ンの実行」 を参照し て く だ さ い。
COM
ク ラ イ アン ト から
WebLogic Server
を呼び出す主な手順
こ の節では、 COM ク ラ イ アン ト か ら WebLogic Server への呼び出し を行 う ため の主な手順を簡単に説明し ます。 詳細については、 以降の節で説明し ます。
WebLogic Server 側
1. アー リ ー バ イ ンデ ィ ング を使用し てい る場合、java2comツールを実行し て
Java ラ ッ パー ク ラ ス と Interface Definition Librarry (IDL) フ ァ イ ルを生成し、
こ れ ら のフ ァ イ ルを コ ンパ イル し ます。2-3 ページの 「Java ラ ッ パーおよび IDL フ ァ イ ルの生成 - アー リ ー バイ ンデ ィ ングのみ」 を参照し て く だ さ い。 2. サーバを起動し ます。2-5 ページの 「サーバの起動」 を参照し て く だ さ い。 3. サーバ リ ス ン ポー ト 上で COM 呼び出し を有効化し ます。2-6 ページの 「サーバ リ ス ン ポー ト 上での COM 呼び出し の有効化」 を参照し て く だ さ い。 4. COM ク ラ イ アン ト にサーバ ク ラ スへのア ク セ ス を許可し ます。 2-6 ページ の 「ア ク セ ス制御の コ ン フ ィ グ レーシ ョ ン」 を参照し て く だ さ い。 5. 他の関連する コ ン ソ ール プ ロパテ ィ を コ ン フ ィ グ レーシ ョ ン し ます。2-8 ページの 「その他の コ ン ソール プ ロパテ ィ のコ ン フ ィ グ レーシ ョ ン」 を参照 し て く だ さ い。 6. 静的コ ン ソ ール プ ロパテ ィ の値を変更し た場合、 新し い値を有効にする ため にサーバを再起動し ます。 COM ク ラ イアン ト 側
1. jCOM ツール フ ァ イ ルおよび WebLogic Server ク ラ ス フ ァ イル ( ネ イ テ ィ ブ
モー ド の場合のみ ) を イ ン ス ト ール し ます。2-8 ページの 「必要な フ ァ イ ルの
イ ン ス ト ール」 を参照し て く だ さ い。
2. ゼ ロ ク ラ イ アン ト イ ン ス ト ールの場合
オブジ ェ ク ト 参照モニカ (ORM) を WebLogic Server ORM サーブレ ッ ト か ら プロ グ ラ ム と し て取得する か、 アプ リ ケーシ ョ ンに貼 り つけ る こ と で取得し ます。2-9 ページの 「WebLogic Server サーブレ ッ ト か ら のオブ
WebLogic Server の準備
ジ ェ ク ト 参照モニカの取得 - ゼ ロ ク ラ イ アン ト のみ」 を参照し て く だ さ い。
3. アー リ ー バ イ ンデ ィ ング を使用し てい る場合
WebLogic Server マシン上で生成さ れた IDL フ ァ イルを取得し て、 型ラ
イ ブ ラ リ に コ ンパ イル し ます。 型ラ イ ブ ラ リ と 、 サービ スする WebLogic Server を登録し ます。 上記の手順については、2-10 ページの 「Java ラ ッパーおよび IDL フ ァ イ ル の生成 - アー リ ー バ イ ンデ ィ ン グのみ」 を参照し て く だ さ い。 4. レ ジ ス ト リ に WebLogic Server JVM を登録し ます。 ネ イ テ ィ ブ モー ド で WebLogic Server と 通信する場合、 こ こ で設定し ます。2-12 ページの 「ク ラ イ アン ト マシン レ ジ ス ト リ への WebLogic Server JVM の登録」 を参照し て く だ さ い。 5. COM ク ラ イ アン ト アプ リ ケーシ ョ ン を コー ド 化し ます。2-14 ページの 「COM ク ラ イ ア ン ト アプ リ ケーシ ョ ンの コー ド 化」 を参照し て く だ さ い。 6. COM ク ラ イ アン ト を起動し ます。2-15 ページの 「COM ク ラ イ アン ト の起 動」 を参照し て く だ さ い。
WebLogic Server
の準備
以下の節では、 COM ク ラ イ アン ト が WebLogic Server オブジ ェ ク ト 上の メ ソ ッ ド を呼び出せる よ う に、 WebLogic Server を準備する方法について説明し ます。
Java
ラ ッパーおよび
IDL
フ ァ イルの生成
-
アー
リ ー
バイ ンデ ィ ングのみ
1. JDK ラ イ ブ ラ リ へのパス と weblogic.jarへのパス をCLASSPATHに追加し ま す。 た と えば、 次の よ う に指定し ます。 set CLASSPATH=%JAVA_HOME%\lib\tools.jar;JAVA_HOMEは、 JDK が イ ン ス ト ール さ れてい る ルー ト フ ォルダ ( 通常 c:\bea\jdk131) で、WL_HOMEは、 WebLogic Platform ソ フ ト ウ ェ アが イ ン ス
ト ール さ れている ルー ト デ ィ レ ク ト リ ( 通常 c:\bea\weblogic700) です。 2. java2comツールで java ラ ッパー フ ァ イ ル と IDL フ ァ イルを生成し ます。
java com.bea.java2com.Main java2com GUI が表示さ れます。
3. 次の よ う に入力し ます。
[Java Classes & Interfaces] : jCOMHelper
examples.ejb20.basic.containerManaged.AccountHome [こ こ に変換す
る ラ ッ パー ク ラ ス を リ ス ト し ます。 ]
[Name of generated IDL File] : IDL フ ァ イルの名前
[Output Directory] : ド ラ イ ブ文字 と ルー ト デ ィ レ ク ト リ \TLB TLB は OLE 型ラ イ ブ ラ リ です。 java2comツールは、 指定さ れた ク ラ ス と メ ソ ッ ド パ ラ メ ータ で使用 さ れる 他のすべての ク ラ ス を参照し ます。 こ の作業は再帰的に行われます。 こ こ で は、 複数の ク ラ ス ま たはイ ン タ フ ェース を スペースで区切っ て指定で き ま す。 抽象ク ラ スではな く 、 パラ メ ータ コ ン ス ト ラ ク タ を持たない Java のパブ リ ッ ク ク ラ スはすべて、 COM ク ラ ス と し てア ク セ ス可能にな り ます。 他の パブ リ ッ ク ク ラ ス、 およびすべてのパブ リ ッ ク イ ン タ フ ェースは、 COM イ ン タ フ ェース と し てア ク セ ス可能にな り ます。 こ の時点で [Generate] ボ タ ン を ク リ ッ ク し て ラ ッパー と IDL を作成する場 合、 生成さ れた ラ ッ パー と IDL を コ ンパ イ ルし よ う と する と 、 エ ラーが発生 し ます。 こ れは、java2comツールのデフ ォル ト で特定の ク ラ スが省略さ れ てい る ためです。 コ ンパイ ル中に生成さ れたエ ラーを参照する こ と に よ り 、 どの ク ラ スで問題が発生し てい るか判別で き ます。
WebLogic Server の準備 こ の問題を修正するには、 java2comツールで [Names] ボ タ ン を ク リ ッ ク し て、 必要な ク ラ ス フ ァ イ ルへのあ ら ゆ る参照を削除し ます。 こ の例では、 次 の参照を削除する必要があ り ます。 *.toString->'''' class java.lang.Class->'''' 4. こ れ ら の参照が削除 さ れる と 、 ラ ッ パー と IDL を生成でき ます。java2com GUI で [Generate] を ク リ ッ ク し ます。
java2comツールでは、 Java オブジ ェ ク ト へのア ク セ スに使用さ れ る DCOM
マーシ ャ リ ン グ コー ド を含む Java ク ラ スが生成 さ れます。 こ れ ら の生成さ れた ク ラ スは、 WebLogic jCOM ラ ン タ イ ムに よ っ て背後で使用 さ れます。 必要なの は こ れ ら の ク ラ ス を コ ンパイ ルする こ と だけです。 ま た、 こ れ ら の ク ラ スが
CLASSPATH に含まれてい る こ と を確認し て く だ さ い。
サーバの起動
WebLogic Server を起動し ます。 「WebLogic Server の起動 と 停止」 を参照し て く
サーバ
リ スン
ポー ト 上での
COM
呼び出しの有効
化
WebLogic Server を イ ン ス ト ールする と 自動的に jCOM が イ ン ス ト ール さ れます
が、 jCOM を有効にする必要があ り ます。 こ れに よ っ て、 リ ス ン ポー ト 上で
COM の呼び出し を リ ス ンする よ う にサーバに知らせます。 1. WebLogic Server Administration Console を起動し ます。 2. 左ペイ ンで、 サーバの名前を ク リ ッ ク し ます。 3. 右ペイ ンの [ 接続 ] タブを ク リ ッ ク し た後で [jCOM] タブを ク リ ッ ク し て、 [jCOM properties] 画面を表示し ます。 4. [COM を有効化 ] ボ ッ ク ス をチェ ッ ク し ます。 5. サーバを再起動し て設定を有効に し ます。 コ ン ソ ールで jCOM プ ロパテ ィ を 設定する予定があ る場合、 サーバを起動する前に設定し て く だ さ い (2-8 ペー ジの 「その他のコ ン ソ ール プ ロパテ ィ のコ ン フ ィ グ レーシ ョ ン」 を参照 )。
ア クセス制御のコ ン フ ィ グレーシ ョ ン
COM ク ラ イ アン ト アプ リ ケーシ ョ ンがア ク セ スする必要のあ る ク ラ スに、 COM ク ラ イ アン ト ユーザ ア ク セ ス を許可し ます。 特定のアプ リ ケーシ ョ ンに よ って、 どの ク ラ ス を公開する かが決定 さ れます。 こ こ で は、 こ の リ リ ースに付属する ゼロ ク ラ イ アン ト の例を示し ます (WL_HOME/samples/server/src/examples/jcom/zeroclientを参照し て く だ さ い )。 ゼ ロ ク ラ イ アン ト の場合、 COM ク ラ イ アン ト は次の 3 つの ク ラ スにア ク セ スす る必要があ り ます。 java.util.Collection java.util.Iterator ejb20.basic.beanManagedWebLogic Server の準備
java.util.Collection
および
java.util.Iterator
へのア クセスの
許可
1. WebLogic Server Administration Console の左ペイ ンで [ サービ ス ] ノ ー ド を ク
リ ッ ク し てか ら、 その下の [JCOM] ノ ー ド を ク リ ッ ク し ます。 2. 右ペイ ンで、 次の よ う に入力し ます。 java.util.* 3. [ポ リ シーを定義 ] を ク リ ッ ク し ます。 4. [ポ リ シー条件 ] ボ ッ ク ス で、 [ 呼び出し側を メ ンバ と する グループは ] を ダ ブル ク リ ッ ク し ます。 5. [グループ名の入力 ] フ ィ ール ド に、 ア ク セ ス を許可する ユーザ グループの 名前を入力し ます。 注意: ゼ ロ ク ラ イ アン ト の例では、 「everyone」 にア ク セ スが許可さ れています が、 ア ク セス を許可する際には、 でき るだけ制約を設け る こ と をお勧め し ます。 6. [追加 ] を ク リ ッ ク し ます。 7. [OK] を ク リ ッ ク し ます。 8. ウ ィ ン ド ウ の右下にあ る [ 適用 ] を ク リ ッ ク し ます。
ejb20.basic.beanManaged
へのア クセスの許可
ゼ ロ ク ラ イ アン ト の例では、ejb20.basic.beanManaged ク ラ スへのア ク セ ス も 必要です。 こ れを実現する には、 手順 3 の 「java.util.*」 を 「ejb20.basic.beanManaged.*」 に 置き換えて、「java.util.Collection および java.util.Iterator へのア ク セ スの許可」 の 手順を繰 り 返し ます。 最後にア ス タ リ ス ク が付いてい る ため、実際には ejb20.basic.beanManaged パ ッ ケージ全体にア ク セ ス を許可し ている こ と に注意し て く だ さ い。ク ラ スへのア ク セ ス許可および取消し に関する詳細については、Console オン ラ イ ン ヘルプ の 7.x セキ ュ リ テ ィ に関する節を Web ブ ラ ウザで参照し て く だ さ い。
その他のコ ン ソール
プロパテ ィ のコ ン フ ィ グレー
シ ョ ン
その他の必要な jCOM コ ン ソ ール プロパテ ィ を コ ン フ ィ グ レーシ ョ ン し ます。 詳細については、 jCOM プ ロパテ ィ に関する Console オン ラ イ ン ヘルプを参照し て く だ さ い。 こ れ ら のプロパテ ィ のいずれかを有効にする ためにサーバを起動する必要があ る 場合は、 こ こ で再起動し ます。COM
ク ラ イ アン ト の準備
以下の節では、 WebLogic Server オブジ ェ ク ト 上の メ ソ ッ ド を呼び出せる よ う に COM ク ラ イ アン ト を準備する方法について説明し ます。必要な フ ァ イルのイ ンス ト ール
WebLogic Server オブジ ェ ク ト 上の メ ソ ッ ド を呼び出すために、 ク ラ イ アン ト マ シ ンに イ ン ス ト ール し てお く 必要のあ る フ ァ イ ルが多数あ り ます。 以下に示すよ う に、 こ の う ち一部のフ ァ イルは、 ネ イ テ ィ ブ モー ド で メ ソ ッ ド を呼び出す場 合にのみ必要です。jCOM
ツール
フ ァ イル
jCOM ツールを実行するには、5 つのファイルと 3 つのフォルダ ( すべてのサブ フォルダとファイルを含む ) が必要です。WebLogic Server を イ ン ス ト ールし た マシン上の WL_HOME\server\binデ ィ レ ク ト リ に、 フ ァ イルがあ り ます。 フ ァ イルは次の と おり です。COM ク ラ イ ア ン ト の準備 JintMk.dll ntvinv.dll regjvm.exe regjvmcmd.exe regtlb.exe regjvm (すべてのサブフ ォルダ と フ ァ イルを含む ) regjvmcmd (すべてのサブフ ォルダ と フ ァ イ ルを含む ) regtlb (すべてのサブフ ォルダ と フ ァ イ ルを含む ) jCOM ツールの詳細については、第 4 章 「jCOM ツールの詳細」 を参照し て く だ さ い。
WebLogic Server
ク ラ ス
フ ァ イル
-
ネイ テ ィ ブ
モー ド のみ
ネ イ テ ィ ブ モー ド でアプ リ ケーシ ョ ン を実行するには、 COM ク ラ イ アン ト マシ ンが特定の WebLogic Server ク ラ ス フ ァ イルにア ク セ スでき る必要があ り ます。 こ れ ら のフ ァ イルを取得するには、 各 COM ク ラ イ アン ト マシ ンに WebLogic Server を イ ン ス ト ール し ます。 ただ し、 COM ク ラ イ アン ト を実行する マシ ン ご と に別個の WebLogic Server ラ イ セン スが必要 と い う わけではあ り ません。WebLogic Server
サーブレ ッ ト からのオブジ ェ ク
ト 参照モニカの取得
-
ゼロ
ク ラ イアン ト のみ
オブジ ェ ク ト 参照モニカ (ORM) は、 WebLogic Server か ら取得でき ます。 COM ク ラ イ アン ト アプ リ ケーシ ョ ンか ら モニカ を使用で き る ので、regjvmcmdを実
行する必要がな く な り ます。 新規サーバを作成し て も、 サーバのホ ス ト と ポー ト が同じ であ る限 り モニカは有効な ま まです。
COM ク ラ イ アン ト コー ド に対し て ORM を取得する方法が 2 つあ り ます。 WebLogic Server 上で実行し ている サーブレ ッ ト を通じ て、 ORM を取得し ま
こ こ で wlshost は WebLogic Server マシ ンを、 wlsport はサーバのポー ト 番号 を示し ます。
WebLogic Server マシ ンの完全な名前ま たは TCP/IP ア ド レ ス と 、 ポー ト 番号
をパ ラ メ ータ と し て指定し て、com.bea.jcom.GetJvmMoniker Java ク ラ ス
を実行し ます。
java com.bea.jcom.GetJvmMoniker [wlshost] [wlsport]
objref モニカ を示し、 その使い方を説明する 長い メ ッ セージが表示さ れます。 ま た、 表示さ れる テキ ス ト は自動的に ク リ ッ プボー ド に コ ピー さ れるの で、 ソ ースに直接貼 り 付けで き ます。 指定し たマシン と ポー ト で WebLogic Server にア ク セ スする ために、 返 さ れた objref モニカ を使用で き ます。
Java
ラ ッパーおよび
IDL
フ ァ イルの生成
-
アー
リ ー
バイ ンデ ィ ングのみ
ク ラ イ アン ト 側に割 り 当て られた ラ ッ パー フ ァ イ ルおよびイ ン タ フ ェース定義 言語 (IDL) フ ァ イルの生成を実行し ます。 1. IDL を ク ラ イ アン ト マシンに コ ピーし ます。WebLogic Server 上で java2comツールの実行 (2-3 ページの 「WebLogic
Server の準備」 を参照 ) に成功し た場合、 IDL フ ァ イ ルがサーバ マシン上に 作成さ れていま す。 こ の IDL フ ァ イ ルを ク ラ イ ア ン ト マシンに コ ピーし て、 こ の COM アプ リ ケーシ ョ ンの \TLBサブデ ィ レ ク ト リ に配置し ま す。 注意: java2comツールがサンプルの \TLBサブデ ィ レ ク ト リ に出力し ているは ずなので、 同じ マシン上で ク ラ イ アン ト と サーバを実行し てい る場合、 こ の手順は必要あ り ません。 2. IDL フ ァ イ ルを コ ンパ イ ルし て、 型 ラ イ ブ ラ リ を作成し ま す。 midl containerManagedTLB.idl
こ の コマン ド で Microsoft IDL コ ンパ イ ラ MIDL.EXEを呼び出し て、 コ ンパ
イルを実行し ます。 コ ンパ イルの結果、containerManagedTLB.tlb と い う
型 ラ イ ブ ラ リ が作成さ れま す。
COM ク ラ イ ア ン ト の準備
regtlb /unregisterall
regtlb containerManagedTLB.tlb registered_jvm
上の最初の行は、 登録済みの型 ラ イ ブ ラ リ バージ ョ ンの登録を解除する ため に regtlb.exeを呼び出し ます。 2 行目の行は、 新し く コ ンパ イル さ れた型 ラ イ ブ ラ リ を登録し ます。 regtlbに渡 さ れる 2 番目のパ ラ メ ータ registered_jvmは重要です。 こ れ は、 型ラ イ ブ ラ リ に リ ン ク さ れる JVM の名前を指定し ます。 WebLogic jCOM ラ ン タ イ ムでは、 型ラ イ ブ ラ リ で定義さ れたオブジ ェ ク ト 呼び出し を 適切な ラ ッ パー ク ラ スに リ ン クする ために こ の情報が必要 と な り ます。
WebLogic Server JVM は、regjvmツールを通じ て ク ラ イ アン ト マシ ンのレ ジ ス
ト リ に登録 さ れます。 詳細については、2-12 ページの 「ク ラ イ アン ト マシン レ ジ ス ト リ への WebLogic Server JVM の登録」 を参照し て く だ さ い。
ラ ッパー
フ ァ イルに関する注意
一般に ラ ッ パー フ ァ イルはサーバ上に配置し、 コ ンパ イル し てお く 必要があ り ます。 IDL フ ァ イ ルは ク ラ イ アン ト 上に配置し、 コ ンパ イル し てお く 必要 があ り ます。 サーバ と ク ラ イ アン ト を別々のマシン上で実行し ている と き に、 ク ラ イ アン ト 側で ラ ッ パー と IDL を作成し た場合、 コ ンパイ ル し たばか り の ラ ッ パー フ ァ イ ルをサーバに配布する必要があ り ます。 サーバ側で ラ ッ パー と IDL を作成し た場合、 IDL フ ァ イ ルが コ ンパ イル さ れて型 ラ イ ブ ラ リ が作成さ れ る ク ラ イ アン ト に IDL フ ァ イルを移動さ せる必要があ り ます。 ラ ッパー フ ァ イ ル と IDL フ ァ イ ルは、 java2comツールを 1 回実行し て作 成する必要があ り ます。 サーバ上 と ク ラ イ アン ト 上の両方で java2com ツー ルを別々に実行し よ う と する と 、 作成する ラ ッ パー フ ァ イ ル と IDL フ ァ イ ルが通信で き な く な り ます。 IDL と ラ ッ パーは識別のためにユニー ク な ス タ ンプを持ち ます。 ラ ッ パーは java2comツールの共通呼び出し か ら作成さ れ る IDL フ ァ イル と のみ通信でき ます。 IDL フ ァ イルも通信で き る のは、 同じ 条件で作成 さ れた ラ ッ パーだけです。 その結果、java2com ツールを 1 回実 行する必要があ り 、 作成さ れる フ ァ イル は後で分散さ れます。 Java ソ ース コー ド に間違いがあ る場合や変更を加え る ために、 java2comツールを再度 実行する必要があ る場合は、 すべての ラ ッ パー フ ァ イ ル 、 IDL フ ァ イル 、 お よび TLB フ ァ イル を削除し、 手順をすべてや り 直す必要があ り ます。 java2comツールを使用し て非推奨の メ ソ ッ ド を含む ( ま たは参照する ) ク ラす。 こ れ ら の警告は無視でき ます。 WebLogic jCOM は、 メ ソ ッ ド を COM か ら ア ク セ ス可能に し ます。 生成さ れた ラ ッ パー ク ラ スは、 CLASSPATH に含め る必要 があ り ます。 単 に EJBjar に含める こ と はでき ません。
ク ラ イアン ト
マシン
レジス ト リへの
WebLogic
Server JVM
の登録
サーバ名を Windows レ ジ ス ト リ に追加し、 その名前を TCP/IP ア ド レ スおよび WebLogic が受信する COM 要求を リ ス ンする ク ラ イ ア ン ト サーバ間の通信ポート に関連付け る こ と で、 ローカル Java Vertual Machine に登録し ます。 デフ ォル ト で、 こ れは localhost:7001 です。 1. regjvm GUI ツールを呼び出す と 、 次の画面が表示さ れます。 2. WebLogic Server が ローカルホ ス ト 以外で実行し てお り 、 7001 以外のポー ト を リ ス ン し ている場合、 ホ ス ト 名 ( ま たは IP ア ド レ ス ) およびポー ト 番号を 入力し ます。 regjvmの コ マン ド ラ イ ン バージ ョ ン を使用する こ と も で き ます。 regjvmcmd servername localhost[7001]
COM ク ラ イ ア ン ト の準備
JVM
の登録解除
regjvm (ま たは regjvmcmd) ツールでは、 古いエン ト リ と 同名の新し いエン ト リ が入力さ れて も、 古いエン ト リ は上書き さ れません。 こ のため、 通信するマシン のホ ス ト 名ま たはポー ト を変更する必要があ る場合は、 古いエン ト リ の登録を解 除し て新し いエン ト リ を作成し なければな り ません。 regjvmツール ウ ィ ン ド ウ で JVM を登録解除するには、 登録を解除する JVM を 選択し て、 [Delete] を選択し ます 。 別の方法 と し て、 コマン ド ラ イ ン ツール regjvmcmdか ら JVM の登録を解除し ます。regjvmcmd /unregister servername
ネイテ ィ ブ
モー ド を選択し ている場合
COM ク ラ イ アン ト をネ イ テ ィ ブ モー ド で実行し てい る場合、regjvmウ ィ ン ド
ウ で [Native mode] ま たは [Native mode in process] ラ ジオボ タ ン を ク リ ッ クす る か、 ま たは /nativeパ ラ メ ータ を使用し て regjvmcmdを呼び出し ます。 こ の手
順に関する詳細については、2-15 ページの 「ネ イ テ ィ ブ モー ド での COM-to-WLS アプリ ケーシ ョ ンの実行」 を参照し て く だ さ い。
COM
ク ラ イアン ト
アプ リ ケーシ ョ ンのコー ド 化
こ れで、 WebLogic Server オブジ ェ ク ト 上の メ ソ ッ ド を呼び出すこ と がで き ます。 こ れを自然に コー ド 化する方法は、 レ イ ト バ イ ンデ ィ ン グ を選択する か、 アー リ ー バ イ ンデ ィ ン グ を選択する かに よ っ て異な り ます。 こ の節で記載する コー ド は、 こ の製品に付属する アー リ ー バ イ ン ド のサンプ ル と レ イ ト バ イ ン ド のサンプ ルか ら の抜粋です。 サンプル コー ド は SAMPLES_HOME\server\src\examples\jcomか ら入手で き ます。レ イ ト
バイ ン ド
アプ リ ケーシ ョ ン
こ のレ イ ト バイ ン ド のサンプルであ る Visual Basic アプ リ ケーシ ョ ンか ら の抜粋 では、Account EJB のホーム イ ン タ フ ェース mobjHomeの COM バージ ョ ンの宣言に注意し て く だ さ い。 こ の COM オブジ ェ ク ト は、 サーバ側にあ る
AccountHomeイ ン タ フ ェースの イ ン ス タ ン スにリ ン ク さ れます。
Dim mobjHome As Object Private Sub Form_Load() 'Handle errors
On Error GoTo ErrOut '
Bind the EJB AccountHome object via JNDI Set mobjHome = CreateObject("examplesServer:jndi:ejb20-containerManaged-AccountH ome")
レ イ ト
バイ ン ド
ク ラ イ アン ト の確認済みの問題と回避策
オーバーロー ド さ れていなが ら パ ラ メ ータの数が同じ メ ソ ッ ド を処理する場合、 WebLogic jCOM には問題があ り ます。 オーバーロー ド さ れた メ ソ ッ ド 内のパ ラ メ ータ数が異な る場合、 その よ う な問題はあ り ません。 パ ラ メ ータ数が同じ 場合には、 呼び出し に失敗し ます。 残念なが ら、 メ ソ ッ ド InitialContext.lookupはオーバーロー ド さ れていま す。ネ イ テ ィ ブ モー ド での COM-to-WLS ア プ リ ケーシ ョ ンの実行
public Object lookup(String)
public Object lookup(javax.naming.Name)
ル ッ ク ア ッ プを実行するには、 オブジ ェ ク ト を作成する ために特別な JNDI モニ カ を使用する必要があり ます。 Set o = CreateObject("servername:jndi:objectname")
アー リー
バイ ン ド
アプ リ ケーシ ョ ン
アー リ ー バ イ ン ド コー ド の最も明ら かな特徴は、 オブジ ェ ク ト と し て宣言 さ れ る変数の数が少ない こ と です。 以前生成し た型 ラ イ ブ ラ リ を使用する こ と に よ り 、 こ こ でオブジ ェ ク ト を宣言で き ます。 「Java ラ ッパーおよび IDL フ ァ イ ルの生成 - アー リ ー バイ ンデ ィ ングのみ」 で生 成し た型ラ イ ブ ラ リ を使用し てオブジ ェ ク ト を宣言し ます。 こ の Visual Basicコー ド か ら の抜粋では、 IDL フ ァ イルは containerManagedTLB と 呼ばれ、 EJB
は ExamplesEjb20BasicContainerManagedAccountHome と 呼ばれます。 Dim objNarrow As New containerManagedTLB.JCOMHelper
こ こ で、 オブジ ェ ク ト の メ ソ ッ ド を呼び出すこ と がで き ます。
Set mobjHome = objNarrow.narrow(objTemp,
"examples.ejb20.basic.containerManaged.AccountHome")
COM
ク ラ イアン ト の起動
COM ク ラ イ アン ト アプ リ ケーシ ョ ン を起動し ます。ネイ テ ィ ブ
モー ド での
COM-to-WLS
アプ
リ ケーシ ョ ンの実行
COM-to-WLS アプ リ ケーシ ョ ンでは、 ネ イ テ ィ ブ モー ド に 「イ ン プロ セ ス」 とア ウ ト オブ プ ロ セス。 JVM は独自のプロ セ ス内で作成さ れ、 COM プ ロ セ ス と WebLogic Server JVM プロ セ スの間でプ ロセ ス間通信が発生し ます。
イ ン プ ロセ ス。 WebLogic Server JVM 全体が COM プロ セ スに取 り 込まれま す。 つま り 、 COM ク ラ イ アン ト のア ド レ ス空間に ロー ド さ れます。
WebLogic Server ク ラ イ アン ト サ イ ド ク ラ スは こ の JVM 内に配置 さ れてい
ます。
アプ リ ケーシ ョ ンで使用する プ ロセ ス を指定するには、regjvm GUI ツール イ ン
タ フ ェースで [Native mode in process] ま たは [Native mode] ラジオ ボ タ ンを選択 し ます。
アウ ト
オブ
プロセスで
JVM
を実行するネイ テ ィ ブ
モー ド
JVM をア ウ ト オブ プ ロ セスで実行する ( ただ し、ネ イ テ ィ ブ コー ド を使用し て COM ク ラ イ アン ト に中の Java オブジ ェ ク ト へのア ク セ ス を許可する ) 場合、 次 の手順に従います。 1. regjvm GUI ツールを呼び出し て、 JVM をネ イ テ ィ ブ と し て登録し ます。regjvmでは、 さ ま ざ ま な レ ジ ス ト リ エン ト リ が設定さ れ、 WebLogic jCOM
の COM と WLS 間の メ カニズムが容易にな り ます。
注意: JVM を登録する場合には、 [JVM id] フ ィ ール ド にサーバの名前を指定す
る必要があ り ます。 た と えば、exampleServerで JCOM ネ イ テ ィ ブ
モー ド が有効にな ってい る と きに、regjvmを使用し て登録する場合に
ネ イ テ ィ ブ モー ド での COM-to-WLS ア プ リ ケーシ ョ ンの実行 2. JVM が実行 さ れていない場合は、 [Advanced] ラ ジオ ボ タ ン を ク リ ッ ク し て、 [Launch Command] フ ィ ール ド に JVM のパス を入力し ます 。 regjvmツールの詳細については、第 4 章 「jCOM ツールの詳細」 を参照し て く だ さ い。 3. アプ リ ケーシ ョ ン コー ド の mainセ ク シ ョ ンに次の コー ド を挿入し て、 WebLogic jCOM ラ ン タ イ ムに JVM が呼び出し を受け取る準備がで き ている こ と を知らせます。 com.bea.jcom.Jvm.register("MyJvm"):
public class MyJvm {
com.bea.jcom.Jvm.register("firstjvm"); Thread.sleep(6000000); // 1 時間の休止 } 4. こ れで、 Visual Basic か ら レ イ ト バイ ンデ ィ ング を使用し て、 JVM に ロー ド で き る Java ク ラ スの イ ン ス タ ン ス を イ ン ス タ ン ス化で き ます 。 Set acctEJB = CreateObject("firstjvm.jndi.ejb20.beanManaged.AccountHome")
5. JVM を指定し た ら、 標準 WebLogic jCOM regtlbコマン ド を使用し て Java
オブジ ェ ク ト にアー リ ー バイ ン ド ア ク セ ス し ます (regtlbはパ ラ メ ータ と し て型 ラ イ ブ ラ リ の名前 と JVM 名を取 り 、 その型ラ イ ブ ラ リ に定義さ れて い るす べての COM オブジ ェ ク ト をその JVM に存在する も の と し て登録し ます )。 ま た、 独自の イ ン ス タ ンシエータ (com.bea.jcom.Jvm.register(...)への 追加パ ラ メ ータ ) を JVM に関連付け る こ と によ って、 COM ク ラ イ アン ト の 代わ り に Java オブジ ェ ク ト の イ ン ス タ ン ス化を制御で き ます 。 こ れは、 オブ ジ ェ ク ト フ ァ ク ト リ の一種です 。
イ ン
プロセスで
JVM
を実行するネイ テ ィ ブ
モー ド
こ のテ ク ニ ッ ク を使用する と 、 実際に JVM を COM ク ラ イ アン ト のア ド レ ス空 間に ロー ド で き ます。 こ こ で再び regjvmコマン ド を使用し ます。 ただ し、 今度は追加パラ メ ータ を指 定し ます。 注意: JVM を登録する場合には、 [JVM id] フ ィ ール ド にサーバの名前を指定す る必要があ り ます。 た と えば、exampleServerで JCOM ネ イ テ ィ ブ モー ド が有効にな ってい る と きに、regjvmを使用し て登録する場合に は、 [JVM id] ボ ッ ク スに exampleServer と 入力し ます。最 も単純な例は、 Visual Basic を使用し て Java オブジ ェ ク ト にレ イ ト バ イ ン ド ア ク セ スする こ と です。 まず、 JVM を登録し ます。 Sun の JDK 1.3.1