示例:使用 ActiveX 客户机应用程序访问 Java 类或对象
可通过 ActiveX 到 Enterprise JavaBeans (EJB) 网桥使用 Java™ 代理对象。
通过 ActiveX 到 Enterprise JavaBeans (EJB) 网桥使用 Java 代理对象,如下所示:
- 当 ActiveX 客户机程序(Visual Basic、VBScript 或 Active Server Pages (ASP))已经初始化 XJB.JClassFactory 对象后,Java 虚拟机 (JVM)、客户机程序可以访问 Java 类以及初始化 Java 对象。完成此操作后,客户机程序使用 XJB.JClassFactory FindClass() 和 NewInstance() 方法。
- 在 Java 编程中,有两种方式可以访问 Java 类:通过 Java 编译器和 Java 映像接口直接调用。因为 ActiveX to Java 网桥无需编译,且是 Java 代码完整的运行时接口,所以网桥依赖后来的映像接口访问类、对象、方法和字段。 XJB.JClassFactory FindClass() 和 NewInstance() methods 行为类似于 Java Class.forName() 和 Method.invoke() 和 Field.invoke() 方法。
- XJB.JClassFactory.FindClass() 采用标准类名作为其唯一的参数并返回代理对象 (JClassProxy)。您可以使用返回的代理对象(与正常的 Java 类对象相似)并调用静态方法和访问静态字段。您还可以按此部分中后面的内容所述创建类实例(或对象)。例如,以下 Visual Basic 代码抽取返回 java.lang.Integer Java 类的代理对象:
... Dim clsMyString as Object Set clsMyString = oXJB.FindClass("java.lang.Integer")
- 在创建代理之后,您可以直接访问其静态信息。例如,您可以使用以下代码摘录将十进制整数转换为它的十六进制表示法:
... Dim strHexValue as String strHexValue = clsMyString.toHexString(CLng(255))
- 等价的 Java 语法是:static String
toHexString(int i)。因为 Java 编程中的 ints 单元是真正的 32 位(这在Visual Basic 中被转换为长整型),所以 CLng() 功能将值从缺省 int 转换为长整型。
同样,即使 toHexString() 函数返回 java.lang.String,该代码摘录不返回 Object 代理。相反,自动将返回的 java.lang.String 转换为本机 Visual Basic 字符串。要从类创建对象,您使用 JClassFactory.NewInstance() 方法。这个方法将创建一个对象实例,并采用您的类构造函数所需的任何参数。一旦创建了对象,您对其全部公用实例方法和字段都有访问权。例如,您可以使用以下 Visual Basic 代码摘录来创建 java.lang.Integer 字符串的实例:
... Dim oMyInteger as Object set oMyInteger = oXJB.NewInstance(CLng(255)) Dim strMyInteger as String strMyInteger = oMyInteger.toString


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