ActiveX クライアント・アプリケーション・コードの開発
WebSphere® ActiveX to EJB ブリッジを使用してエンタープライズ Bean にアクセスするための ActiveX Windows プログラム (例えば Visual Basic、VBScript、Active Server Pages など) を開発します。
始める前に
重要: このトピックでは、
ユーザーが ActiveX プログラミングおよび Windows プラットフォームでの開発に精通していることを前提としています。
ActiveX アプリケーション・クライアントおよび ActiveX to EJB ブリッジのプログラミング概念については、『ActiveX to Enterprise JavaBeans™ (EJB) ブリッジ』トピックとその関連トピックを参照してください。
適切なプログラミングのガイドラインとして、ActiveX to EJB ブリッジに提供されている情報も参考にしてください。
このタスクについて
手順
例
System.out メッセージの表示: ActiveX to Enterprise JavaBeans (EJB) ブリッジ には、Java System.out メッセージの表示に使用できる コンソールがありません。スタンドアロン・クライアント・プログラム (Visual Basic など) の実行中 にこれらのメッセージを見るには、出力をファイルに転送してください。
出力をファイルに転送するには、次の例のようにします。
launchClientXJB.bat MyProgram.exe > output.txt
- Active Server Page などのサービス・プログラムを実行中に System.out メッセージを見るには、 Java System.out OutputStream オブジェクト をオーバーライドして FileOutputStream にします。例えば、VBScript では以下のようになります。
'Redirect system.out to a file ' Assume that oXJB is an initialized XJB.JClassFactory object Dim clsSystem Dim oOS Dim oPS Dim oArgs ' Get the System class Set clsSystem = oXJB.FindClass("java.lang.System") ' Create a FileOutputStream object ' Create a PrintStream object and assign to it our FileOutputStream Set oArgs = oXJB.GetArgsContainer oArgs.AddObject "java.io.OutputStream", oOS Set oPS = oXJB.NewInstance(oXJB.FindClass("java.io.PrintStream"), oArgs) ' Set our System OutputStream to our file clsSystem.setOut oPS
データ型変換のためのヘルパー・メソッドを 使用する ActiveX クライアント・アプリケーション。通常、ActiveX (Visual Basic および VBScript) と Java メソッドの間のデータ型変換は、 『ActiveX to EJB ブリッジによるデータ型の変換』で説明しているように自動的に行われます。 ただし、自動変換が不可能な場合に備えて、バイト・ヘルパー関数と通貨ヘルパー 関数が用意されています。
- バイト Helper 関数Java バイト・データ型は符号付き (-127 から 128) であり、 Visual Basic バイト・データ型は符号なし (0 から 255) であるため、 符号なしのバイトを Visual Basic 整数に変換します。 これは、外観が Java の符号付バイトに似ています。 この変換を行うには、以下の Helper 関数を使用することができます。
Private Function GetIntFromJavaByte(Byte jByte) as Integer GetIntFromJavaByte = (CInt(jByte) + 128) Mod 256 - 128 End Function
- 通貨 Helper 関数Visual Basic 6.0 は、 Java メソッドのように 64 ビット整数を正しく処理することはできません (Long データ型として)。 したがって、Visual Basic は、本来は 64 ビット・データ型の通貨型を使用します。 通貨型 (バリアント型 VT_CY) を使用する場合の唯一の副次作用は、小数点が型に挿入されることです。 Visual Basic の 64 ビットの Long 値を抽出し、取り扱うには、次の例のようなコードを使用します。 通貨データ型を変換するためのこの技法について詳しくは、 Microsoft 知識ベースの Q189862 "HOWTO: Do 64-bit Arithmetic in VBA" を参照してください。
' Currency Helper Types Private Type MungeCurr Value As Currency End Type Private Type Munge2Long LoValue As Long HiValue As Long End Type ' Currency Helper Functions Private Function CurrToText(ByVal Value As Currency) As String Dim Temp As String, L As Long Temp = Format$(Value, "#.0000") L = Len(Temp) Temp = Left$(Temp, L - 5) & Right$(Temp, 4) Do While Len(Temp) > 1 And Left$(Temp, 1) = "0" Temp = Mid$(Temp, 2) Loop Do While Len(Temp) > 2 And Left$(Temp, 2) = "-0" Temp = "-" & Mid$(Temp, 3) Loop CurrToText = Temp End Function Private Function TextToCurr(ByVal Value As String) As Currency Dim L As Long, Negative As Boolean Value = Trim$(Value) If Left$(Value, 1) = "-" Then Negative = True Value = Mid$(Value, 2) End If L = Len(Value) If L < 4 Then TextToCurr = CCur(IIf(Negative, "-0.", "0.") & _ Right$("0000" & Value, 4)) Else TextToCurr = CCur(IIf(Negative, "-", "") & _ Left$(Value, L - 4) & "." & Right$(Value, 4)) End If End Function ' Java Long as Currency Usage Example Dim LC As MungeCurr Dim L2 As Munge2Long ' Assign a Currency Value (really a Java Long) ' to the MungeCurr type variable LC.Value = cyTestIn ' Coerce the value to the Munge2Long type variable LSet L2 = LC ' Perform some operation on the value, now that we ' have it available in two 32-bit chunks L2.LoValue = L2.LoValue + 1 ' Coerce the Munge value back into a currency value LSet LC = L2 cyTestIn = LC.Value