1

我正在尝试使用 LS2J 从 LotusScript 调用 ODF 工具包 ( https://incubator.apache.org/odftoolkit/simple/index.html ) 的简单 API,但我一直无法正确使用它。

我在一个名为 ODFDOM 的 Java 库中包含以下内容:

  • odfdom-java-0.8.7.jar
  • 简单的 odf-v0.4.5.jar
  • Xerces-J-bin.2.11.0-xml-schema-1.1-beta.zip

在代理的 Sub Initialize 中使用此代码:

Dim js As javasession
Dim jc As Javaclass
Dim jerr As JAVAERROR
Dim jms As JavaMethodCollection
Dim jobj As Javaobject, jdoc As JavaObject
Dim jm As JAVAMETHOD

Set js = New JavaSession
Set jc = js.Getclass("org/odftoolkit/simple/SpreadsheetDocument")
Set jm = jc.GetMethod("newSpreadsheetDocument", "()Lorg/odftoolkit/simple/SpreadsheetDocument;")
Set jdoc = jm.Invoke

执行给出错误:

JS2J 错误:抛出 java.lang.NullPointerException

关于我做错了什么的任何线索?

4

1 回答 1

1

您必须“使用”您的库“ODFDOM”并使用带有点的 Java 表示法获取您的类。您可以通过直接调用静态方法来缩短代码:

Use "ODFDOM"
Dim js As javasession
Dim jSpreadsheetDocumentClass As Javaclass
Dim jdoc As JavaObject

Set js = New JavaSession
Set jSpreadsheetDocumentClass  = js.Getclass("org.odftoolkit.simple.SpreadsheetDocument")
Set jdoc = jSpreadsheetDocumentClass.newSpreadsheetDocument()

更新:

LS2J 不适用于资源。每当您在 Java 代码中使用资源时,它都不适用于 LS2J。在简要查看 ODF Toolkit 源代码后,我看到了使用的资源。

因此,改为创建一个 Java 代理并从 LotusScript 调用它。

于 2014-01-14T09:18:46.733 回答