Java 中的简单组件
From Apache OpenOffice Wiki
< Zh | Documentation
本节介绍如何编写 Java 组件。本章中的示例保存在程序员手册随附的示例文件夹中。
Java 组件是包含实现任意 UNO 服务的对象的 Java 类库 (JAR)。对于 Java 中的服务实现,需要实现必要的 UNO 核心接口以及您所需的的接口。这些接口可以是现有接口,也可以是使用 UNOIDL 定义的接口。
除了这些服务实现外,Java 组件还需要两个方法来实例化它们要在 UNO 环境中实现的服务:一个方法用于为 JAR 中每个服务实现获取单个工厂,另一个方法用于将注册信息写入注册表数据库。在下文中,这些方法称为静态组件操作:
为组件中服务实现提供单个工厂的方法是 __getServiceFactory()
:
public static XSingleServiceFactory __getServiceFactory(String implName,
XMultiServiceFactory multiFactory,
XRegistryKey regKey)
从理论上讲,客户端可以通过直接调用组件实现上的 __getServiceFactory()
从组件中获取单个工厂。但此方法很少使用,因为在大多数情况下,服务管理器用于获取服务实现的实例。服务管理器在组件使用 __getServiceFactory()
,以从组件获取请求的服务的工厂,然后要求此工厂创建一个工厂支持的对象的实例。
要找到请求的服务实现,服务管理器将搜索它的注册表数据库,查找包含此实现的组件 JAR 的位置。为此,组件事先必须进行注册。UNO 组件可以通过执行注册的函数编写关于其自身的必要信息,而且该函数可以由注册工具 regcomp 调用。该函数具有如下签名:
public static boolean __writeRegistryServiceInfo(XRegistryKey regKey)
这两个方法配合使用,使得组件中的实现对服务管理器可用。方法 __writeRegistryServiceInfo()
通知服务管理器到何处查找实现,而一旦找到实现,__getServiceFactory()
使服务管理器可以实例化这个服务实现。
编写组件的必要步骤包括:
- 定义服务实现类。
- 实现 UNO 核心接口。
- 实现您自己的接口。
- 提供静态组件操作以使您的组件对服务管理器可用。
Content on this page is licensed under the Public Documentation License (PDL). |