Beispiel: ActiveX-Clientanwendung für den Zugriff auf eine Java-Klasse oder ein Java-Objekt verwenden
In diesem Abschnitt wird beschrieben, wie Java-Proxy-Objekte mit der ActiveX-EJB-Brücke verwendet werden.
Gehen Sie wie folgt vor, um Java-Proxy-Objekte mit der ActiveX-EJB-Brücke zu verwenden:
- Nachdem ein ActiveX-Clientprogramm (Visual Basic, VBScript oder Active Server Pages (ASP)) das Objekt "XJB.JClassFactory" und damit die JVM initialisiert hat, kann es auf Java-Klassen zugreifen und Java-Objekte initialisieren. Dazu verwendet das Clientprogramm die Methoden "XJB.JClassFactory FindClass()" und "NewInstance()".
- In der Java-Programmierung stehen zwei Methoden für den Zugriff auf Java-Klassen zur Verfügung: der direkte Aufruf über den Java-Compiler und der Aufruf über die Java-Schnittstelle "Reflection". Da die ActiveX-Java-Brücke keine Kompilierung erfordert und eine vollständige Laufzeitschnittstelle für Java-Code darstellt, benötigt sie die Java-Schnittstelle "Reflection", um auf Klassen, Objekte, Methoden und Felder zugreifen zu können. Die Methoden "XJB.JClassFactory FindClass()" und "NewInstance()" verhalten sich ähnlich wie die Java-Methoden "Class.forName()", "Method.invoke()" und "Field.invoke()".
- XJB.JClassFactory.FindClass() verwendet als einzigen Parameter den vollständig qualifizierten
Klassennamen und gibt ein Proxy-Objekt (JClassProxy) zurück. Sie können das
zurückgegebene Proxy-Objekt wie ein normales Java-Klassenobjekt verwenden,
statische Methoden aufrufen und auf statische Felder zugreifen. Außerdem können Sie, wie im Folgenden
beschrieben, aus dem Objekt eine Klasseninstanz erstellen:
Beispielsweise gibt der folgende Codeauszug von Visual Basic ein
Proxy-Objekt für den java.lang.Integer der Java-Klasse zurück:
... Dim clsMyString as Object Set clsMyString = oXJB.FindClass("java.lang.Integer")
- Wenn das Proxy-Objekt erstellt wurde, können Sie direkt auf dessen statische
Informationen zugreifen.
Sie können z. B. den folgenden Codeauszug verwenden, um
eine dezimale Ganzzahl in die hexadezimale Darstellung zu konvertieren:
... Dim strHexValue as String strHexValue = clsMyString.toHexString(CLng(255))
- Die entsprechende Java-Syntax ist static String toHexString(int i).
Da int-Werte in der Java-Programmierung eigentlich 32-Bit-Werte sind
(entspricht dem Typ "long" in Visual Basic), konvertiert die Funktion CLng() den Wert vom
Standardtyp "int" in den Typ "long".
Außerdem gibt der Codeauszug kein
Proxy-Objekt zurück, obwohl die Funktion "toHexString()" einen java.lang.String
zurückgibt. Stattdessen wird der zurückgegebene java.lang.String
automatisch in einen nativen Visual Basic-String konvertiert. Verwenden Sie die Methode JClassFactory.NewInstance(), um ein Objekt aus einer Klasse zu erstellen. Diese Methode erstellt eine Objektinstanz und verwendet alle vom Klassenkonstruktor benötigten Parameter. Sobald das Objekt erstellt wurde, haben Sie Zugriff auf alle öffentlichen Instanzmethoden und -felder dieses Objekts. Sie können z. B. den folgenden VB-Codeauszug verwenden, um eine Instanz von java.lang.Integer zu erstellen.
... Dim oMyInteger as Object set oMyInteger = oXJB.NewInstance(CLng(255)) Dim strMyInteger as String strMyInteger = oMyInteger.toString
Zugehörige Konzepte:
Zugehörige Verweise:


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