Développement de code d'application client ActiveX
Développement d'un programme ActiveX Windows, de type Visual Basic, VBScript ou Active Server Pages, afin d'utiliser la passerelle ActiveX vers EJB de WebSphere pour accéder aux beans enterprise.
Avant de commencer
Vous devez également tenir compte des informations données dans les instructions de programmation relatives à la passerelle ActiveX vers EJB.
Pourquoi et quand exécuter cette tâche
Procédure
Exemple
Affichage d'un messageSystem.out : Le pont EJB (ActiveX to Enterprise JavaBeans) ne dispose pas d'une console pour afficher les messages Java System.out. Pour afficher ces messages pendant l'exécution d'un programme client autonome (par exemple, Visual Basic), vous devez rediriger la sortie vers un fichier.
launchClientXJB.bat MyProgram.exe > output.txt
- Pour afficher les messages System.out lors de l'exécution d'un programme de service, tel que Active Server Pages, remplacez l'objet Java System.out OutputStream par FileOutputStream. Par exemple, dans VBScript:
'Réacheminement de system.out vers un fichier ' Implique que oXJB est un objet XJB.JClassFactory initialisé Dim clsSystem Dim oOS Dim oPS Dim oArgs ' Obtention de la classe système Set clsSystem = oXJB.FindClass("java.lang.System") ' Création d'un objet FileOutputStream ' Création d'un objet PrintStream et affectation à FileOutputStream Set oArgs = oXJB.GetArgsContainer oArgs.AddObject "java.io.OutputStream", oOS Set oPS = oXJB.NewInstance(oXJB.FindClass("java.io.PrintStream"), oArgs) ' Affectation du flot de sortie au fichier clsSystem.setOut oPS
Application client ActiveX utilisant des méthodes auxiliaires pour la conversion des types de données En général, les conversions de types de données entre ActiveX (Visual Basic et VBScript) et le code Java se font automatiquement, comme indiqué dans Passerelle ActiveX vers EJB, conversion des types de données. Toutefois, la fonction auxiliaire byte et la fonction auxiliaire currency sont fournies si la conversion automatique ne peut pas être exécutée.
- Byte helper Dans la mesure où le type de données Octet Java est signé (-127 à 128) alors que son équivalent Visual Basic ne l'est pas (0 à 255), vous devez convertir les types Octet non signés en entiers Visual Basic, qui ressemblent à l'octet signé du code Java. Pour ce faire, utilisez la fonction auxiliaire suivante :
Private Function GetIntFromJavaByte(Byte jByte) as Integer GetIntFromJavaByte = (CInt(jByte) + 128) Mod 256 - 128 End Function
- Currency Helper Visual Basic 6.0 ne traite pas les entiers 64 bits aussi bien que les méthodes Java (tels que le type de données Long). Par conséquent, Visual Basic utilise le type Currency, qui est de façon intrinsèque un type de données à 64 bits. Le seul inconvénient du type Currency (le type Variant VT_CY) est qu'une virgule décimale est insérée dans le type. Pour extraire et manipuler la valeur Long de 64 bits sous Visual Basic, inspirez-vous de l'exemple de code suivant. Pour plus de détails sur cette technique de conversion des types de données Currency, reportez-vous à l'article Q189862, "HOWTO: Do 64-bit Arithmetic in VBA", de la base de connaissance Microsoft.
' Types auxiliaire Currency Private Type MungeCurr Value As Currency End Type Private Type Munge2Long LoValue As Long HiValue As Long End Type ' Fonctions auxiliaires Currency 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 ' Long Java comme exemple d'utilisation de Currency Dim LC As MungeCurr Dim L2 As Munge2Long ' Attribue une valeur Currency (en fait une valeur Java) ' à la variable de type MungeCurr LC.Value = cyTestIn ' Force la valeur de la variable de type Munge2Long LSet L2 = LC ' Effectue des opérations sur la valeur, maintenant qu'elle est ' disponible en deux morceaux de 32 bits L2.LoValue = L2.LoValue + 1 ' Force le rétablissement de la valeur de Munge en valeur Currency LSet LC = L2 cyTestIn = LC.Value