Java 中的简单组件

From Apache OpenOffice Wiki
Jump to: navigation, search
  • Java 中的简单组件


本节介绍如何编写 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() 使服务管理器可以实例化这个服务实现。


编写组件的必要步骤包括:

  1. 定义服务实现类。
  2. 实现 UNO 核心接口。
  3. 实现您自己的接口。
  4. 提供静态组件操作以使您的组件对服务管理器可用。


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages