Esempio: utilizzando un ActiveX applicazione client per accedere a una classe o a un oggetto Java
È possibile utilizzare oggetti proxy Java™ con ActiveX all'Impresa JavaBeans (EJB) ponte.
Utilizza oggetti proxy Java con ActiveX all'Impresa JavaBeans (EJB), come segue:
- Dopo un ActiveX il programma client (Visual Basic, VBScript o Active Server Pages (ASP)) ha inizializzato il file XJB.JClassFactory oggetto e quindi, la Java virtual machine (JVM), il programma client può accedere alle classi Java e inizializzare oggetti Java. Per completare questa azione, il programma client utilizza il file XJB.JClassFactory FindClass() E NewInstance() metodi.
- Nella programmazione Java esistono due modi per accedere alle classi Java: invocazione diretta tramite il compilatore Java e tramite l'interfaccia Java Reflection. Perché il ActiveX to Java bridge non necessita di compilazione ed è un'interfaccia runtime completa per il codice Java, il bridge dipende da quest'ultima interfaccia Reflection per accedere alle sue classi, oggetti, metodi e campi. IL XJB.JClassFactory FindClass() E NewInstance() si comportano in modo molto simile a Java Class.forName() e il Method.invoke() E Field.invoke() metodi.
- XJB.JClassFactory.FindClass( ) accetta il nome completo della classe come unico parametro e restituisce un oggetto proxy (JClassProxy ). È possibile utilizzare l'oggetto Proxy restituito come un normale oggetto Classe Java e chiamare metodi statici e accedere ai campi statici. Puoi anche creare un'istanza di classe (o oggetto), come descritto più avanti in questa sezione. Ad esempio, il seguente estratto di codice Visual Basic restituisce un oggetto Proxy per il file java.lang.Integer Classe Java:
... Dim clsMyString as Object Set clsMyString = oXJB.FindClass("java.lang.Integer") - Dopo aver creato il proxy, puoi accedere direttamente alle sue informazioni statiche. Ad esempio, puoi utilizzare il seguente estratto di codice per convertire un intero decimale nella sua rappresentazione esadecimale:
... Dim strHexValue as String strHexValue = clsMyString.toHexString(CLng(255))
- La sintassi Java equivalente è:
static String toHexString(int i). Poiché le unità int nella programmazione Java sono in realtà a 32 bit (che si traduce in Long in Visual Basic), la funzione CLng() converte il valore dall'int predefinito a long. Inoltre, anche se il toHexString() la funzione restituisce a java.lang.String, l'estrazione del codice non restituisce un proxy di oggetto. Invece, il restituito java.lang.String viene automaticamente convertito in una stringa nativa di Visual Basic.Per creare un oggetto da una classe, usi il file JClassFactory.NewInstance() metodo. Questo metodo crea un'istanza Object e accetta tutti i parametri necessari al costruttore della classe. Una volta creato l'oggetto, hai accesso a tutti i suoi metodi e campi dell'istanza pubblica. Ad esempio, puoi utilizzare il seguente estratto di codice Visual Basic per creare un'istanza di java.lang.Integer corda:... Dim oMyInteger as Object set oMyInteger = oXJB.NewInstance(CLng(255)) Dim strMyInteger as String strMyInteger = oMyInteger.toString