故障排除

From Apache OpenOffice Wiki
Jump to: navigation, search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


如果组件出现问题,请对照以下清单,检查组件的配置是否正确。


检查注册表关键字

要检查注册表数据库的设置是否正确,请运行 regview 对组成注册表数据库 /UCR、/SERVICES 和 /IMPLEMENTATIONS 分支注册的三个关键字。以下示例显示了如何读取相应的关键字,以及正确的配置是什么样的。在我们的示例中,服务 ImageShrink 和关键字 /UCR/org/openoffice/test/XimageShrink 包含在 UNOIDL 中指定的类型信息(regview 的准确输出可能因 OpenOffice.org 版本不同而异):

 # dump XImageShrink type information
 
 $ regview thumbs.rdb /UCR/org/openoffice/test/XImageShrink 
 
 Registry "file:///X:/office60eng/program/thumbs.rdb":
 
 /UCR/org/openoffice/test/XImageShrink
  Value: Type = RG_VALUETYPE_BINARY
         Size = 364
         Data = minor version: 0
                major version: 1
                type: 'interface'
                uik: { 0x00000000-0x0000-0x0000-0x00000000-0x00000000 }
                name: 'org/openoffice/test/XImageShrink'
                super name: 'com/sun/star/uno/XInterface'
                Doku: ""
                IDL source file: "X:\SO\sdk\examples\java\Thumbs\org\openoffice\test\XImageShrink.idl"
                number of fields: 3
                field #0:
                  name='SourceDirectory'
                  type='string'
                  access=READWRITE
                   Doku: ""
                  IDL source file: ""
                field #1:
                  name='DestinationDirectory'
                  type='string'
                  access=READWRITE
                   Doku: ""
                  IDL source file: ""
                field #2:
                  name='Dimension'
                  type='com/sun/star/awt/Size'
                  access=READWRITE
                   Doku: ""
                  IDL source file: ""
                  number of methods: 0
                  number of references: 0


/SERVICES/org.openoffice.test.ImageShrink 关键字必须指向为此服务选择的实现名称 org.openoffice.comp.test.ImageShrink

 # dump service name registration
 
 $ regview thumbs.rdb /SERVICES/org.openoffice.test.ImageShrink 
 
 Registry "file:///X:/office60eng/program/thumbs.rdb":
 
 /SERVICES/org.openoffice.test.ImageShrink
  Value: Type = RG_VALUETYPE_STRINGLIST
         Size = 45
         Len  = 1
         Data = 0 = "org.openoffice.comp.test.ImageShrink"


最后,/IMPLEMENTATIONS/org.openoffice.comp.test.ImageShrink 关键字必须包含加载程序和组件 JAR 的位置:

 # dump implementation name registration
 
 $ regview thumbs.rdb /IMPLEMENTATIONS/org.openoffice.comp.test.ImageShrink 
 
 Registry "file:///X:/office60eng/program/thumbs.rdb":
 
 /IMPLEMENTATIONS/org.openoffice.comp.test.ImageShrink
  / UNO
    / ACTIVATOR
      Value: Type = RG_VALUETYPE_STRING
             Size = 26
             Data = "com.sun.star.loader.Java2"
 
    / SERVICES
      / org.openoffice.test.ImageShrink
    / LOCATION
      Value: Type = RG_VALUETYPE_STRING
             Size = 50
             Data = "file:///X:/office60eng/program/classes/thumbs.jar"


如果缺少 UCR 关键字,则是 regmerge 问题。最可能的原因是缺少 .urd 文件。编写 makefile 文件时请小心处理。如果在 makefile 文件启动 regmerge 时缺少 .urd 文件,regmerge 将继续运行并创建基本的 .rdb 文件,有时没有任何类型信息。


如果 regview 无法找到 /SERVICES 和 /IMPLEMENTATIONS 关键字或者它们包含错误的内容,regcomp 在运行时将会出错。这可能是由 regcomp 参数中的错误路径名引起的。


此外,java(.ini|rc) 中的 SystemClasspath 设置错误(OpenOffice.org 2.0 之前的版本)可能导致 regcomp 显示缺少类的错误消息。请检查为 Java UNO 运行时 JAR 指定的 java(.ini|rc) 中的 SystemClasspath 条目。


确保注册 Java 组件时 regcomp 是从当前目录运行的。此外,确保 regcomp 运行时, <OfficePath>/program 是当前文件夹,并验证 regcomp 是否位于当前文件夹中。


检查 Java VM 设置

只要 VM 服务由 OpenOffice.org 实例化,它都使用 OpenOffice.org 中的 Java 配置设置。这发生在 Java 组件注册期间,因此,请确保 Java 已启用。选择 OpenOffice.org 中的工具 - 选项,以显示对话框。展开 OpenOffice.org 节点并选择安全。选中 Java 区域中的启用复选框,并单击确定


检查 Manifest

确保 Manifest 文件包含注册类名称的正确条目。该文件必须包含以下行:

 RegistrationClassName: <full name of package and class>


确保 Manifest 文件以新行结束。注册类名称必须是实现 __writeRegistryServiceInfo()__getServiceFactory() 方法的类的名称。在我们的示例中,要在 Manifest 条目中输入的 RegistrationClassNameorg.openoffice.comp.test.ImageShrink


调整附加类的 CLASSPATH

OpenOffice.org 启动用于 Java 组件的 Java VM 时会保留自身的系统类路径和用户类路径。系统或用户类路径中不需要包含服务实现的 JAR 文件。如果组件要用到的 JAR 文件或类文件不是 Java UNO 运行时的组成部分,则它们必须位于类路径中。通过编缉选项对话框中的类路径可以 完成此操作(工具 – 选项 – OpenOffice.org – 安全)。


禁用调试选项

如果 java(.ini|rc) 文件中存在调试选项(-Xdebug、-Xrunjdwp)(OpenOffice.org 2.0 之前的版本),则可以分别在这两行的行首放置分号来禁用它们。对于 OpenOffice.org 2.0 及其以后版本,确保在“参数”对话框中删除调试选项。此对话框可以在选项对话框中可找到(工具 – 选项 – OpenOffice.org– Java)。regcomp 或 pkgchk 工具可能会挂起,因为 JVM 会等待附加调试器。

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