例: ActiveX クライアント・アプリケーションを使用した Java クラスまたはオブジェクトへのアクセス
ActiveX と Enterprise JavaBeans (EJB) 間のブリッジで Java™ プロキシー・オブジェクトを使用できます。
ActiveX と Enterprise JavaBeans (EJB) 間のブリッジで Java プロキシー・オブジェクトを使用するには、次のようにします。
- ActiveX クライアント・プログラム (Visual Basic、VBScript、または Active Server Page (ASP)) は、 XJB.JClassFactory オブジェクトおよびそれによる Java 仮想マシン (JVM) を初期化した後で、 Java クラスにアクセスして、Java オブジェクトを初期化することができます。 このアクションを完了するには、 クライアント・プログラムは XJB.JClassFactory FindClass() メソッドおよび NewInstance() メソッドを使用します。
- Java プログラミングでは、Java クラスにアクセスする方法は 2 とおりあります。 すなわち、Java コンパイラーを使用して直接起動する方法と、 Java のリフレクション・インターフェースを使用する方法です。ActiveX to Java ブリッジは、 コンパイルを必要とせず、また、Java コードへの完全なランタイム・インターフェースであるため、 そのクラス、オブジェクト、メソッド、およびフィールドにアクセスする場合、 このブリッジは後者のリフレクション・インターフェースによって決まります。 XJB.JClassFactory FindClass() および NewInstance() メソッドは、 Java Class.forName()、Method.invoke() および Field.invoke() メソッドと非常によく似た動作をします。
- XJB.JClassFactory.FindClass() は、その唯一のパラメーターとして完全修飾クラス名をとり、
プロキシー・オブジェクト (JClassProxy) を戻します。
戻されたプロキシー・オブジェクトを、通常の Java クラス・オブジェクトと同様に使用して、
静的メソッドを呼び出して、静的フィールドにアクセスすることができます。
このトピックで後に説明するように、クラス・インスタンス (すなわちオブジェクト) を作成することもできます。例えば、次の Visual Basic コード抽出は、
Java クラス java.lang.Integer のプロキシー・オブジェクトを戻します。
... Dim clsMyString as Object Set clsMyString = oXJB.FindClass("java.lang.Integer")
- プロキシーが作成されたら、その静的情報に直接アクセスすることができます。
例えば、次のコード抽出を使用して、10 進整数を 16 進表記に変換することができます。
... Dim strHexValue as String strHexValue = clsMyString.toHexString(CLng(255))
- 同等な Java 構文は、static String toHexString(int i) です。
Java プログラミングの int の単位は実際には 32 ビット (Visual Basic では Long に変換される) であるため、
CLng() 関数は、デフォルトの int 値を long に変換します。
また、toHexString() 関数が java.lang.String を戻す場合であっても、
コード抽出はオブジェクト・プロキシーを戻しません。
代わりに、戻された java.lang.String は、
固有の Visual Basic string に自動的に変換されます。
クラスからオブジェクトを作成するには、 JClassFactory.NewInstance() メソッドを使用します。 このメソッドにより、オブジェクト・インスタンスが作成され、 クラスのコンストラクターが必要とするパラメーターがすべて使用されます。 いったんオブジェクトが作成されると、 その全 public インスタンス・メソッドおよびフィールドにアクセスすることができます。 例えば、次の Visual Basic コード抽出を使用して、 java.lang.Integer ストリングのインスタンスを作成することができます。
... Dim oMyInteger as Object set oMyInteger = oXJB.NewInstance(CLng(255)) Dim strMyInteger as String strMyInteger = oMyInteger.toString


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rcli_xproxy
ファイル名:rcli_xproxy.html