Exemple : Utilisation d'une application client ActiveX pour accéder à un objet ou une classe Java
Vous pouvez utiliser les objets proxy Java™ avec la passerelle ActiveX vers Enterprise JavaBeans (EJB).
Utilisez les objets proxy Java avec la passerelle ActiveX vers Enterprise JavaBeans (EJB), comme suit :
- Après qu'un programme client ActiveX (Visual Basic, VBScript ou Active Server Pages (ASP)) a initialisé l'objet XJB.JClassFactory et, par conséquent, la machine virtuelle Java, le programme client peut accéder aux classes Java et initialiser des objets Java. Pour ce faire, le programme client utilise les méthodes FindClass() et NewInstance() de XJB.JClassFactory.
- Dans la programmation Java, il existe deux manières d'accéder aux classes Java : appel direct via le compilateur Java et via l'interface Java Reflection. Dans la mesure où la passerelle ActiveX vers Java ne nécessite aucune compilation et constitue une interface d'exécution complète vers le code Java, elle s'appuie sur le mécanisme de réflexion pour accéder à ses classes, ses objets, ses méthodes et ses zones (champs). Les méthodes FindClass() et NewInstance() de XJB.JClassFactory se comportent de façon très semblable aux méthodes Class.forName(), Method.invoke() et Field.invoke() Java.
- XJB.JClassFactory.FindClass() prend le nom de classe qualifié complet
comme unique paramètre et renvoie un objet proxy (JClassProxy).
Vous
pouvez utiliser cet objet comme un objet Class Java ordinaire, ce qui
permet d'appeler des méthodes statiques et
d'accéder à des zones statiques. Vous pouvez également
l'utiliser pour créer une instance de Class (ou objet), comme décrit ultérieurement dans cette section.
Par exemple, l'extrait de code Visual Basic suivant renvoie un objet
Proxy pour la classe Java java.lang.Integer :
... Dim clsMyString as Object Set clsMyString = oXJB.FindClass("java.lang.Integer")
- Une fois le proxy créé, vous pouvez accéder à ses informations
statiques directement. Par exemple, l'extrait de code suivant permet de
convertir un entier décimal en sa représentation hexadécimale :
... Dim strHexValue as String strHexValue = clsMyString.toHexString(CLng(255))
- La syntaxe Java équivalente est : static String
toHexString(int i). Dans la mesure où les unités int, en programmation Java, sont en fait
codées sur 32 bits (ce qui est équivalent à Long dans Visual Basic), la
fonction CLng() convertit la valeur par défaut de int en long.
En outre, bien que la fonction
toHexString() renvoie un paramètre java.lang.String, cet extrait de code ne renvoie
pas d'objet proxy. Au contraire, java.lang.String est converti automatiquement en chaîne native de
Visual Basic.Pour créer un objet à partir d'une classe, utilisez la méthode JClassFactory.NewInstance(). Elle crée une instance d'Object et emploie tous les paramètres requis par le constructeur de votre classe. Une fois l'objet créé, vous pouvez accéder à toutes ses méthodes et zones d'instance publiques. Par exemple, l'extrait de code Visual Basic suivant permet de créer une instance de la chaîne java.lang.Integer :
... Dim oMyInteger as Object set oMyInteger = oXJB.NewInstance(CLng(255)) Dim strMyInteger as String strMyInteger = oMyInteger.toString
Concepts associés:
Référence associée:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rcli_xproxy
Nom du fichier : rcli_xproxy.html