从lotus脚本(LS2J)调用Java类的方法

Eri*_*man 7 java lotus-notes lotusscript ls2j

最有尊严的开发者,

我在从Lotus脚本代理调用我自己的java类中的方法时遇到问题.

我简化的Java类看起来像这样

import lotus.domino.*;

public class MyClass{
   /* .. omitted constructor and other methods .. */

   public void myMethod(Document doc){
      /* ... do things with the document object ...*/
   }

}
Run Code Online (Sandbox Code Playgroud)

现在这个类包含在正确的use语句中,我可以在lotus脚本中迭代class对象上的classmethods来获取所需参数的签名.

但是当我尝试调用该方法时,我得到了一个 LS2J: Parameter mismatch calling Method myMethod

我在JavaObject上尝试了点符号(不,我没有使用Mac;))和ADT

Dim doc as NotesDocument
Dim jSession As JavaSession
Dim jClass As JavaClass
Dim jObject As JavaObject

...

Set jSession = New JavaSession()
Set jClass = jSession.Getclass("MyClass")

Set jObject = jClass.Createobject()
Call jObject.myMethod(doc)
Run Code Online (Sandbox Code Playgroud)

和分别

Dim jMethod as JavaMethod
...

Set jMethod = jClass.Getmethod("myMethod", "(Llotus/domino/Document;)V")
tmp = jMethod.Invoke(jObject,doc)
Run Code Online (Sandbox Code Playgroud)

此外,我添加了错误处理(OnError ..)来打印出任何JavaError(+ stacktrace)的结果,但它们最终为空,因此没有进一步的线索.

我正在使用Designer 9.0版

任何想法/指针/陷阱?它让我秃顶.

Per*_*ten 8

您正在使用正确的方法来调用Java方法,但是您无法将Notes后端对象作为参数传递.

例如,您可以使用文档通用ID解析字符串,然后在Java方法中使用通用ID查找文档.

或者,将您的Lotusscript逻辑迁移到Java :-)