最有尊严的开发者,
我在从 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 ...*/
}
}
现在这个类包含在正确的 use 语句中,我可以在 Lotus 脚本中迭代类对象的类方法以获得所需参数的签名。
但是当我尝试调用该方法时,我得到一个 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)
分别
Dim jMethod as JavaMethod
...
Set jMethod = jClass.Getmethod("myMethod", "(Llotus/domino/Document;)V")
tmp = jMethod.Invoke(jObject,doc)
我还添加了错误处理 (OnError ..) 以打印出任何 JavaError (+ stacktrace) 的结果,但它们最终为空,因此没有进一步的线索。
我使用的是 Designer 9.0 版
有什么想法/建议/陷阱吗?它让我秃头。
最佳答案
您正在使用正确的方法来调用您的 Java 方法,但您不能将 Notes 后端对象作为参数传递。
例如,您可以使用文档通用 ID 解析字符串,然后在您的 Java 方法中使用通用 ID 查找文档。
或者,将您的 Lotusscript 逻辑迁移到 Java :-)
关于java - 从 Lotus 脚本 (LS2J) 调用 Java 类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23912808/