故障排除

From Apache OpenOffice Wiki
< Zh‎ | Documentation
Revision as of 09:23, 29 July 2008 by Jirong (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


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


检查注册表关键字

要检查注册表数据库的设置是否正确,请运行 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