gpt4 book ai didi

java - 在 Java 库中,lotus.domino.Session 类方法 createDateTime() 抛出 NullPointerException

转载 作者:行者123 更新时间:2023-12-02 10:46:18 25 4
gpt4 key购买 nike

从 XPage SSJS 调用 Domino Designer Java 库文件夹中的 Java 文件(而不是 Agents 文件夹中的 Java 代理)时,对于 createDateTime() 等标准方法将抛出 NullPointerException:

import java.io.*;
import java.net.*;
import java.security.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.faces.context.FacesContext;
import javax.net.ssl.HttpsURLConnection;
import com.ibm.commons.util.io.base64.Base64;
import lotus.domino.*;

public class Tools extends AgentBase {

...

public void getSession( ) throws IOException {

Session s = getSession();
DateTime dt = s.createDateTime("Today"); // NullPointerException
String n = s.getEffectiveUserName(); // NullPointerException

...

}

}

如果Java代码保存为Java代理,则不会抛出异常。

是否有另一种方法可以在 Java 中使用“Now”设置 NotesDateTime 字段,而无需使用 session.createDateTime() 方法?

使用 Java 库(不是代理)时,AgentBase 是否已扩展或是否有其他扩展可供使用?

还有哪些其他方法可以创建可能有帮助的lotus.domino.Session?

更新:plugin.xml中,我添加了com.ibm.xsp.extlib作为依赖项 ,并且 Java 类编译无错误。

XPages 属性,页面生成 Xpage 库 com.ibm.xsp.extlib.library 已选中。

从服务器控制台,告诉 http osgi ss com.ibm.xsp.extlib 返回:

> tell http osgi ss com.ibm.xsp.extlib
osgi> "Framework is launched."
id State Bundle
114 RESOLVED com.ibm.xsp.extlib.controls.nl1_9.0.1.v10_00_20180115-1058
Master=117
115 RESOLVED com.ibm.xsp.extlib.controls.nl2_9.0.1.v10_00_20180115-1058
Master=117
116 RESOLVED com.ibm.xsp.extlib.controls.nl3_9.0.1.v10_00_20180115-1058
Master=117
117 STARTING com.ibm.xsp.extlib.controls_9.0.1.v10_00_20180115-1058
Fragments=116, 115, 114
118 RESOLVED com.ibm.xsp.extlib.core.nl1_9.0.1.v10_00_20180115-1058
Master=121
119 RESOLVED com.ibm.xsp.extlib.core.nl2_9.0.1.v10_00_20180115-1058
Master=121
120 RESOLVED com.ibm.xsp.extlib.core.nl3_9.0.1.v10_00_20180115-1058
Master=121
121 STARTING com.ibm.xsp.extlib.core_9.0.1.v10_00_20180115-1058
Fragments=119, 118, 120
122 RESOLVED com.ibm.xsp.extlib.domino.nl1_9.0.1.v10_00_20180115-1058
Master=125
123 RESOLVED com.ibm.xsp.extlib.domino.nl2_9.0.1.v10_00_20180115-1058
Master=125
124 RESOLVED com.ibm.xsp.extlib.domino.nl3_9.0.1.v10_00_20180115-1058
Master=125
125 STARTING com.ibm.xsp.extlib.domino_9.0.1.v10_00_20180115-1058
Fragments=123, 124, 122
126 RESOLVED com.ibm.xsp.extlib.mobile.nl1_9.0.1.v10_00_20180115-1058
Master=129
127 RESOLVED com.ibm.xsp.extlib.mobile.nl2_9.0.1.v10_00_20180115-1058
Master=129
128 RESOLVED com.ibm.xsp.extlib.mobile.nl3_9.0.1.v10_00_20180115-1058
Master=129
129 STARTING com.ibm.xsp.extlib.mobile_9.0.1.v10_00_20180115-1058
Fragments=127, 128, 126
130 RESOLVED com.ibm.xsp.extlib.oneui.nl1_9.0.1.v10_00_20180115-1058
Master=133
131 RESOLVED com.ibm.xsp.extlib.oneui.nl2_9.0.1.v10_00_20180115-1058
Master=133
132 RESOLVED com.ibm.xsp.extlib.oneui.nl3_9.0.1.v10_00_20180115-1058
Master=133
133 STARTING com.ibm.xsp.extlib.oneui_9.0.1.v10_00_20180115-1058
Fragments=132, 130, 131
134 RESOLVED com.ibm.xsp.extlib.relational.nl1_9.0.1.v10_00_20180115-1058
Master=137
135 RESOLVED com.ibm.xsp.extlib.relational.nl2_9.0.1.v10_00_20180115-1058
Master=137
136 RESOLVED com.ibm.xsp.extlib.relational.nl3_9.0.1.v10_00_20180115-1058
Master=137
137 STARTING com.ibm.xsp.extlib.relational_9.0.1.v10_00_20180115-1058
Fragments=135, 136, 134
138 STARTING com.ibm.xsp.extlib_9.0.1.v10_00_20180115-1058

请注意,日志显示正在启动 com.ibm.xsp.extlib_9.0.1.v10_00_20180115-1058

这是什么意思?我还向服务器添加了 updatesite.nsf 文件,并使用 OSGI_HTTP_DYNAMIC_BUNDLES=install\update-site.nsf 更新了 Notes.ini。

启动 HTTP 时,没有任何消息表明 OSGI 正在加载到运行时中。

尝试设置 session 时出现的错误:

NoClassDefFoundError:com/ibm/xsp/extlib/util/ExtLibUtil

这个类不是已经包含在 Domino 9.0.1FP10 服务器中了吗?

最佳答案

获取 session

Session s = ExtLibUtil.getCurrentSession();

随后的代码行将起作用。

public class Tools  {
...
public void yourMethod() {
Session s = ExtLibUtil.getCurrentSession();
DateTime dt = s.createDateTime("Today");
String n = s.getEffectiveUserName();
...
}
}

您使用的函数 getSession() 仅适用于 Java 代理。

不要忘记将扩展库包含到您的项目中:

enter image description here

关于java - 在 Java 库中,lotus.domino.Session 类方法 createDateTime() 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52548675/

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