ActiveX 클라이언트 애플리케이션 코드 개발

WebSphere® ActiveX to EJB 브릿지를 사용하여 엔터프라이즈 Bean에 액세스하려면 ActiveX Windows 프로그램(예: Visual Basic, VBScript, Active Server Pages)을 개발하십시오.

시작하기 전에

중요사항: 이 주제에서는 사용자가 ActiveX 프로그래밍에 익숙하고 Windows 플랫폼에서 프로그램을 개발 중이라고 가정합니다. ActiveX 애플리케이션 클라이언트 및 ActiveX to EJB 브릿지의 프로그래밍 개념에 대한 자세한 정보는 ActiveX to EJB(Enterprise JavaBeans™) 브릿지 주제 및 관련 항목을 참조하십시오.

ActiveX to EJB 브릿지에서 제공되는 정보를 좋은 프로그래밍 안내로 간주하십시오.

이 태스크 정보

ActiveX to EJB 브릿지를 사용하여 Java™ 클래스에 액세스하려면 ActiveX 프로그램을 개발하여 다음 단계를 완료하십시오.

프로시저

  1. XJB.JClassFactory 오브젝트의 인스턴스를 작성하십시오.
  2. XJB.JClassFactory 오브젝트의 XJBInit() 메소드를 호출하여 ActiveX 프로그램 프로세스 내에 JVM(Java Virtual Machine) 코드를 작성하십시오. ActiveX 프로그램에서 XJB.JClassFactory 오브젝트가 작성되고 XJBInit() 메소드가 호출되면 JVM 코드가 초기화되어 사용 가능하게 됩니다.
  3. XJB.JClassFactory FindClass() 및 NewInstance() 메소드를 사용하여 Java 클래스에 대한 프록시 오브젝트를 작성하십시오. ActiveX 프로그램은 프록시 오브젝트를 사용하여 Java 클래스, 오브젝트 필드, 메소드에 액세스할 수 있습니다.
  4. Java 메소드 호출 구문을 사용하여 Java 클래스에서 메소드를 호출하고 필요에 따라 Java 필드에 액세스하십시오.
  5. 자동 변환이 불가능한 경우 헬퍼(helper) 기능을 사용하여 변환하십시오. 다음 데이터 유형 간에 변환할 수 있습니다.
    • Java 바이트 및 Visual Basic 바이트
    • Visual Basic Currency 유형 및 Java 64비트
  6. Java 클래스에서 리턴되는 오류를 처리하는 메소드를 구현하십시오. Visual Basic 또는 VBScript에서는 Err.Number 및 Err.Description 필드를 사용하여 실제 Java 오류를 확인하십시오.

System.out 메시지 보기: ActiveX to EJB(Enterprise JavaBeans) 브릿지에는 Java System.out 메시지를 볼 수 있는 콘솔이 없습니다. 독립형 클라이언트 프로그램(예: Visual Basic)을 실행할 때 이 메시지를 보려면 파일로 출력 경로를 재지정해야 합니다.

다음 예제는 파일로 출력 경로를 재지정하는 방법을 보여줍니다.
launchClientXJB.bat MyProgram.exe > output.txt
  • 서비스 프로그램(예: Active Server Pages)을 실행할 때 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브릿지, 데이터 유형 변환에 설명된 대로 자동으로 발생합니다. 그러나 자동 변환이 가능하지 않는 경우를 위해 바이트 헬퍼 기능과 통화 헬퍼 기능이 제공됩니다.

  • 바이트 헬퍼 기능
    Java 바이트 데이터 유형은 부호가 있고(-127에서 128) Visual Basic 바이트 데이터 유형은 부호가 없으므로(0에서 255), 부호가 없는 바이트를 Java 부호 바이트처럼 Visual Basic 정수로 변환하십시오. 이 변환을 수행하기 위해 다음 헬퍼 기능을 사용할 수 있습니다.
    Private Function GetIntFromJavaByte(Byte jByte) as Integer
    	     GetIntFromJavaByte = (CInt(jByte) + 128) Mod 256 - 128
    End Function
  • 통화 헬퍼 기능
    Visual Basic 6.0은 Java 메소드가 할 수 있는 것처럼 64비트 정수를 (Long 데이터 유형으로) 적절하게 처리할 수 없습니다. 따라서 Visual Basic은 통화 유형을 사용합니다. 이것은 본래 64비트 데이터 유형입니다. 통화 유형(Variant 유형 VT_CY) 사용의 유일한 단점은 소수점이 유형에 삽입되는 것입니다. Visual Basic에서 64비트 Long 값을 추출 및 조작하려면 다음 예와 같은 코드를 사용하십시오. 통화 데이터 유형 변환을 위한 이 기법에 대한 자세한 내용은 Microsoft Knowledge Base의 Q189862, "HOWTO: VBA에서 64비트 산술 수행"을 참조하십시오.
    ' 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

다음에 수행할 작업

ActiveX 클라이언트 애플리케이션 코드를 개발한 후, ActiveX 애플리케이션을 배치 및 실행하십시오.

주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tcli_developactivex
파일 이름:tcli_developactivex.html