1

我有一个 java 类,应该将数据从当前数据库传输到另一台服务器。要访问当前数据库,Java 似乎需要一个工作Session对象:

public class EdgeServerConnection
{
    public EdgeServerConnection(Session session) {
        try {
            // How to get the session into here?
            Database db = session.getCurrentDatabase();
            ...
        } catch(Exception e) {
        }
    }
}

应该从 LotusScript 代理调用该类,如下所示:

Set session = New NotesSession
Set jsession = New JAVASESSION
Set connectionClass = jsession.GetClass("EdgeServerConnection")
Set connectionObject = connectionClass.CreateObject("(L/lotus/notes/Session;V)", session)

但这会引发错误

LS2J:java 构造函数执行失败

如果我从构造函数和 CreateObject 调用中删除 Session 参数,错误就会消失。

如何让代理会话进入 java 类?

4

1 回答 1

3

您不能使用 LS2J 调用的 Java 类中的 Domino 对象,也不能将 Domino 对象作为参数传递。

使用 LotusScript 中的 Notes Domino 类完成所有工作,并使用 Java 类来完成您真正需要仅使用 Java 完成的任务。

作为替代方案,您可以创建一个 Java 代理来完成所有工作。然后,您可以从 LotusScript 调用 Java 代理。

于 2016-11-08T12:09:51.600 回答