在Java库中,lotus.domino.Session类方法createDateTime()抛出NullPointerException
当从XPage SSJS调用Domino Designer Java库文件夹中的Java文件(而不是Agents文件夹中的Java代理)时,会对标准方法(如在Java库中,lotus.domino.Session类方法createDateTime()抛出NullPointerException,java,xpages,lotus-domino,lotus,Java,Xpages,Lotus Domino,Lotus,当从XPage SSJS调用Domino Designer Java库文件夹中的Java文件(而不是Agents文件夹中的Java代理)时,会对标准方法(如createDateTime())抛出NullPointerException: 如果Java代码保存为Java代理,则不会引发异常 在Java中,有没有其他方法可以不用session.createDateTime()方法而将NotesDateTime字段设置为“Now” 使用Java库(不是代理)时,是否扩展了AgentBase,或者是否有
createDateTime()
)抛出NullPointerException:
如果Java代码保存为Java代理,则不会引发异常
在Java中,有没有其他方法可以不用session.createDateTime()方法而将NotesDateTime字段设置为“Now”
使用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\u HTTP\u DYNAMIC\u BUNDLES=install\update site.nsf更新了Notes.ini
启动HTTP时,没有消息表明OSGI正在加载到运行时
尝试设置会话时出现的错误:
NoClassDefFoundError:com/ibm/xsp/extlib/util/ExtLibUtil
Domino9.0.1FP10服务器中是否已包含此类?使用
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代理
不要忘记将扩展库包括到项目中:
如何导入com.ibm.xsp.extlib.util.ExtLibUtil?说名称无法解析…我找不到com.ibm.xsp.extlib.util库。它在哪里?我找到了com.ibm.xsp.extlib.core、com.ibm.xsp.extlib.domino、com.ibm.xsp.extlib.mobile和其他,但没有找到com.ibm.xsp.extlib.util。我是从Package Explorer、plugin.xml依赖项中找到的tab.在尝试设置会话时仍会出错:NoClassDefFoundError:com/ibm/xsp/extlib/util/ExtLibUtil这个类不是已经包含在运行FP10的Domino9服务器中了吗?出于某种原因,上面的库从开始更改为解析花了很长时间。它现在正在工作。
public class Tools {
...
public void yourMethod() {
Session s = ExtLibUtil.getCurrentSession();
DateTime dt = s.createDateTime("Today");
String n = s.getEffectiveUserName();
...
}
}