我创建了两个代理,一个由Java构成,另一个由Lotusscript构成.java代理程序计划每5分钟运行一次,而lotusscript代理程序计划每15分钟运行一次.因此,有一段时间他们将同时运行.当发生这种情况时,java代理必须暂停/等待,直到lotusscript代理完成.我尝试使用Profile DOcuments和Environment Variables来模拟锁定,但无济于事.有没有办法可以模拟这两种不同代理之间的锁定?请帮忙.非常感谢!
编辑:我忘了说2个代理商驻留在两个不同的数据库中,使事情复杂化:(
我们在公司的服务器上使用"单点登录".在浏览器中打开xpage应用程序时,会向用户显示服务器登录掩码.
现在我们有了为其他非多米诺骨牌应用程序实现REST服务的请求.我们使用xagent模式来实现此服务.客户端如何在简单的ajax调用中对此服务进行身份验证?
谢谢马里奥
我有一些Java代码使用Java Domino API(使用NCSO.jar)通过IIOP连接Domino数据库.现在的一个新要求是,如果要连接的服务器是群集的,则应该可以利用此功能,并在当前连接的服务器发生故障时切换到群集中的故障转移服务器.
不幸的是,Domino Java API是彻头彻尾的晦涩,在本地和远程使用API而不是IIOP之间存在细微差别,很少有非常明确的解释和奇怪的差异取决于您提供方法的参数.
我设法从这里收集了一些信息...... openWithFailoverMethod是否有效?
我还检查了IBM信息中心的文档.
我试过的第一件事就是:
Session session = NotesFactory.createSession(host + ":" + port, user, password);
Database db = session.getDatabase(null, databaseName, false);
db.openWithFailover(host, databaseName);
Run Code Online (Sandbox Code Playgroud)
getDatabase
对于IIOP操作,服务器名称的第一个参数显然必须为null.openWithFailover
当它已经在会话中时,如何在方法中再次指定服务器名称时我感到很神秘,但我想你可以通过会话连接到集群,然后在open方法中指定主服务器.但是,为什么需要两次提供数据库名称并不十分清楚.如果无法访问数据库,那么最后一个参数表明不应该创建数据库(省略它并且它默认为true;多么美妙).
不幸的是,这NotesException: This database object is already open as E:\Lotus\Domino\data\mail-in\EDITEST.nsf
在我脸上吐了一个例外.它出现在该openWithFailover
方法的行上.
显然,第一次调用getDatabase
已打开它,并且没有关闭方法或选项只能在不实际打开它的情况下获取对象.所述Database
类是一个接口,所以没有静态方法来获取这样的对象或以其他方式将其实例化的一种方式.我查了一下,我找到的唯一选择是openDatabase
在课堂上使用DbDirectory
.猜猜那是做什么的.现在该方法确实有一个带有布尔值的替代方法,表明您是否希望使用故障转移,但根据文档,对于IIOP操作,它总是错误的.
根据此页面,您可以Database
通过getDatabase
使用两个空参数调用来获取空对象.所以我尝试了这个:
Session session = NotesFactory.createSession(host + ":" + port, user, password);
Database db = session.getDatabase(null, null, false);
db.openWithFailOver(host, …
Run Code Online (Sandbox Code Playgroud) 我想以编程方式解密 Lotus Notes NSF 文件。假设对于每个 NSF,我都有访问 NSF 所需的 ID 文件和密码。
我使用的是 Lotus Notes 8.5.2、Windows 7 SP1 64 位。我愿意使用 COM、C++ API 或 C API。
我知道 C API 函数NSFDbIsLocallyEncrypted
,它报告 NSF 是否已加密。但是,我不相信它能够解密 NSF。
我知道 C++ API 函数LNNotesSession.CreateDatabaseCopy
,它采用参数 3 DBOptions
,其中有一个我可以设置为的成员 DBOptions.SetLocalEncryption( LNLOCALENCRYPTION::LNLOCALENCRYPTION_NONE )
。然而,这个函数创建了一个新的 NSF。如果可能的话,我想就地解密源 NSF 以节省时间和磁盘空间。
如何从 NSF 中删除本地加密?
我有一个代理,它获取模板文档的副本并从文本文件中输入值.
我在以编程方式向字段添加超链接时遇到问题,如果我只是添加文本(例如http://www.google.com),则没有超链接只是纯文本.如果我手动添加文本,通过编辑文档只需添加地址工作正常,可点击.
我已经尝试创建一个富文本对象,然后将其添加到字段,但这也不起作用:(
Set rtItem = New NotesRichTextItem( doc, "link" )
Call rtitem.AddNewLine( 1 )
Call rtItem.AppendText ("http://www.google.com")
doc.AppendItemValue "Details", rtItem
Run Code Online (Sandbox Code Playgroud)
为了清楚起见,我正在寻找一种方法,使用lotusscript将可点击的超链接附加到字段.任何帮助将不胜感激.
编辑:进一步检查,如果我生成一个文本字段中带有链接的文档并保存(使用doc.save编程),它将保存为纯文本,然后我进入本文档并执行手动保存纯文本变成一个链接就好了.我如何储蓄可能有问题吗?
If (Not doc.save(True,False,True)) Then
Msgbox("Document could not save")
End If
Run Code Online (Sandbox Code Playgroud) 在最近的项目中,有必要调整IBM Notes Client(9.0.1)的java.policy.您可以在类似于以下目录中找到java.policy:
C:\Program Files\IBM\Domino\jvm\lib\security\
Run Code Online (Sandbox Code Playgroud)
我已将以下行添加到主grant {} - 块:
permission java.lang.RuntimePermission "getenv.TIKA_CONFIG";
Run Code Online (Sandbox Code Playgroud)
必须对所有客户 - 客户进行此调整.我的问题是:
如何在客户环境中部署这些更改?是否有IBM Domino配置工具或类似的东西?
我有一个使用默认Lotus Notes http登录的Lotus Notes应用程序.
在我们的开发人员服务器上,Notes有一个html表单,用于将登录请求发送到names.nsf
<form method="post" action="/names.nsf?Login" name="_DominoForm">
Run Code Online (Sandbox Code Playgroud)
并且同样注销,调用
/names.nsf?LogOut
Run Code Online (Sandbox Code Playgroud)
我们在其他Notes服务器上也发现了这种情况 - 但是,这是默认情况,那么还有什么可以期待的呢?
虽然登录是Notes自动显示的表单,但是注销按钮必须是我们的Web应用程序的一部分(在LotusScript中使用后端),并且我将链接硬编码到names.nsf.
现在,客户似乎使用了大量自定义的设置,其中登录和注销不使用names.nsf.我不知道他们为登录做了什么 - 但是当试图打电话时/names.nsf?LogOut
,Access被拒绝了.
有没有什么办法可以通过编程方式找出用于登出用户的操作?如果没有,则必须在我们的后端完成注销(至少iNotes就这样做).如何将注释http注销编程到LotusScript Notes代理中?
我最终会在我的笔记文档中写入一些自定义数据。但在此之前,我想了解它是如何工作的,因此我在两个单独的代理中复制/粘贴了来自 IBM 知识中心的有关 Replace/getItemValueCustomData 的示例。
问题是,当我尝试读取自定义数据时,读取代理会抛出该异常:
java.lang.ClassNotFoundException: customData.IntIntString
at java.lang.Class.forName(Class.java:291)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:619)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1609)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1768)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:364)
at lotus.domino.local.Document.getItemValueCustomData(Unknown Source)
at JavaAgent.NotesMain(JavaAgent.java:14)
at lotus.domino.AgentBase.runNotes(Unknown Source)
at lotus.domino.NotesThread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
这是代码:
写代理:
import customData.IntIntString;
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
IntIntString iis = new IntIntString();
iis.setData(1, 2, "String1");
Document doc = agentContext.getDocumentContext();
doc.replaceItemValueCustomData("IntIntStringItem", "IntIntStringType", iis);
doc.save();
} catch (Exception e) { …
Run Code Online (Sandbox Code Playgroud) 我最近将一些应用程序移动到运行Domino 9.0.1FP8的服务器(JVM版本:JRE 1.8.0 Windows Server 2008 R2 amd64-64).由于我这样做,我无法加载任何,但最基本的Xpages.我得到"错误500 HTTP Web服务器:命令未处理异常"页面.
通过... IBM\Domino\data\IBM_TECHNICAL_SUPPORT\xpages_exec我得到例外:
我还在Designer的"问题"选项卡中收到以下错误:
有没有原因java.util在Java 1.8中失败?有什么我能做的吗?谢谢你的帮助.
担
我尝试了所有方法,但它不起作用,我知道有一些类似的问题有答案,但这些问题是 5 年前提出的,不是最新的,也不起作用。
我的问题是:如何使用 Domino 数据服务 Rest-Api 搜索字段值。
我使用的网址:GET http(s)://{database}/api/data/documents?search=[fieldname]%20CONTAINS%20VALUE
这个网址不起作用。我总是得到一个错误。
错误:
"code":400,
"text":"Bad Request",
"message":"Database is not full text indexed.",
"type":"text",
"data":"com.ibm.domino.services.ServiceException: Database is not full text indexed.\r\n\tat...
Run Code Online (Sandbox Code Playgroud)
提前致谢!
lotus-domino ×10
lotus-notes ×8
java ×4
lotusscript ×3
xpages ×3
agents ×1
ajax ×1
get-request ×1
httprequest ×1
hyperlink ×1
ibm-domino ×1
iiop ×1
lotus ×1
rest ×1