gpt4 book ai didi

java - 无法在从代理调用的 java 中获取 openNTF session - 版本 10.0.1

转载 作者:行者123 更新时间:2023-12-02 03:59:25 28 4
gpt4 key购买 nike

我正在尝试从代理调用 java session 。 getSession() 调用在 V3 中工作正常,但我收到“org.openntf.domino.utils.Factory 未为此线程初始化!”错误。工厂类中有一条错误消息,指出“如果您在代理中运行,请确保首先调用 Factory.setSession() 并传入 Lotus.domino.Session”,但现在该方法似乎已在工厂类中被注释掉了。

我尝试从 getSession() 更改为 getAgentSession(),但我没想到它会起作用,因为问题出在 Factory 上。

在服务器上的 lib/ext 目录中,我有以下两个 jar 文件:

  • org.openntf.domino_10.0.1.201905061230.jar
  • org.openntf.formula_10.0.1.201905061230.jar

我添加了 org.openntf.formula jar,因为日志中有一个错误,指出缺少一个类。

我拥有服务器的完全管理权限、对 nsf 的管理员访问权限,并将代理的运行时安全级别设置为“3. 允许具有完全管理权限的受限操作”

编辑:我添加了一些代码来查看是否可以说服工厂初始化,但即使在提交 Lotus.domino session 后我仍然遇到相同的错误:

if(!Factory.isStarted()) {
System.out.println("Factory.startup");
Factory.startup(NotesFactory.createSession());
} else {
System.out.println("Factory shutdown and restart");
Factory.shutdown();
Factory.startup(NotesFactory.createSession());
}

更多的黑客行为试图解决这个问题。这段代码...

lotus.domino.Session lnSession = lotus.domino.NotesFactory.createSession();
System.out.println("Session Common User Name: " + lnSession.getCommonUserName());

if(!Factory.isStarted()) {
System.out.println("Factory.startup");
Factory.startup(lnSession);
} else {
System.out.println("Factory shutdown and restart");
Factory.shutdown();
Factory.startup(lnSession);
}

Session session = Factory.getSession();

...给了我以下内容。有趣的是,获取 Lotus.domino session 没有任何问题,但当移交给 openNTF Factory 时,它仍然存在问题。这是一个错误,还是我遗漏了一些东西。我检查了服务器文档中的安全选项卡,服务器被命名为具有完全访问权限,我也是如此。

注意:dev2server 是我们的 Domino 10.01 测试服务器,用于在将应用程序从 9.0.1 FP8 移动到 10.0.1 FP1 之前测试应用程序。

06/24/2019 07:45:43 PM  AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') printing: Session Common User Name: dev2server
06/24/2019 07:45:43 PM AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') printing: Factory shutdown and restart
06/24/2019 07:45:43 PM AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') printing: [ODA] Shutting down the OpenNTF Domino API...
06/24/2019 07:45:43 PM AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') printing: [ODA] OpenNTF Domino API shut down
06/24/2019 07:45:43 PM AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') printing: [ODA] Starting the OpenNTF Domino API... Using notes.ini: C:\Lotus\Domino\notes.ini
06/24/2019 07:45:43 PM AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') printing: [ODA] OpenNTF API Version 10.0.1.201905061230 started
06/24/2019 07:45:43 PM AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') printing: Logging: LogConfig successfully initialized from D:\Lotus\Domino\data/IBM_TECHNICAL_SUPPORT/org.openntf.domino.logging.logconfig.properties
06/24/2019 07:45:43 PM AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') error message: java.lang.IllegalStateException: org.openntf.domino.utils.Factory is not initialized for this thread!
06/24/2019 07:45:43 PM AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') error message: at org.openntf.domino.utils.Factory.getThreadVariables(Factory.java:346)
06/24/2019 07:45:43 PM AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') error message: at org.openntf.domino.utils.Factory.getSession(Factory.java:953)
06/24/2019 07:45:43 PM AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') error message: at org.openntf.domino.utils.Factory.getSession(Factory.java:859)
06/24/2019 07:45:43 PM AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') error message: at ProcessMailInRequests.NotesMain(ProcessMailInRequests.java:89)
06/24/2019 07:45:43 PM AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') error message: at lotus.domino.AgentBase.runNotes(Unknown Source)
06/24/2019 07:45:43 PM AMgr: Agent ('ProcessMail-InRequests PMIR' in 'batch\batchquery.nsf') error message: at lotus.domino.NotesThread.run(Unknown Source)

谢谢,斯科特.

最佳答案

几年前,我们从 Factory.getSession() 转向传递 session 类型的枚举,例如Factory.getSession(SessionType.CURRENT)。这可能在代理中有效,但我认为这不太可能,因为我们使用 XPage 运行时来初始化 session 。据我所知,没有哪个开发者在代理中使用 ODA。

从lotus.domino.Session 创建ODA session 的方法可能是final Session sess = Factory.fromLotus(rawSession, Session.SCHEMA, null)。代理使用 Lotus.domino session 进行初始化,您可以将其作为参数传递到 fromLotus 方法中。

关于java - 无法在从代理调用的 java 中获取 openNTF session - 版本 10.0.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56741006/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com