Java 远程操作 Domino Objects
一、说明
Java通过web方式远程访问、操作Lotus Domino Objects,Java 程序使用 CORBA(Common Object Request Broker Architecture)请求 Domino 服务器所提供的服务。远程类使用 CORBA 通过 TCP/IP 网络访问服务器。远程访问由以下两个部分组成:
1、客户机通过 HTTP 协议获得服务器的初始对象,作为 IOR (Interoperable Object Reference)。
2、客户机通过 IIOP 连接进一步获得其他对象。
Java 通过 HTTP 和 IIOP 的远程访问
要编译使用 lotus.domino 包的 Java 程序,类路径必须包含 NCSO.jar。
其中 Notes.jar 可以在任何 Notes/Domino 安装的程序目录中找到。NCSO.jar 可以在 Domino Designer 或 Domino 服务器数据目录下的 domino\java 目录中找到(此包高版本Domino系统兼容低版本)。
二、远程调用
1、Domino服务器文档设置:
Domino Directory(names.nsf)的 Server 文档的配置页面做如下配置
(1)打开Internet协议页签的Http页签,设置"允许HTTP客户浏览数据库:是"
(2)打开安全性页签,设置Java/Com限制。
运行有限制的java/javascript/com:*
运行无限制的java/javascript/com:*
(3)打开端口页签的Internet页签的IIOP页签、web页签
(4)要在服务器上启动 HTTP 和 DIIOP 任务,需要确保这些任务在 Notes.ini 文件ServerTasks 变量的任务列表中,如果正确配置了 Server 文档该文件,那么这些任务应该包含在任务列表中。Notes.ini 文件应该包含类似于下面的行:ServerTasks=Update,Replica,Router,AMgr, AdminP,CalConn,Sched,DIIOP,HTTP,LDAP
从运行的服务器,可以在控制台中输入下列命令来加载任务:
> load http > load diiop
可以在控制台用 tell 命令停止任务:
> tell http quit > tell diiop quit
可以刷新 DIIOP 任务:
> tell diiop refresh
可以重新启动 HTTP 任务:
> tell http restart
(5)获取 IOR。如果使用createSessionWithIOR创建连接。需要将diiop_ior.txt文件从服务器计算机复制到客户机计算机上。该文件在服务器的安装目录的\Domino\Data\domino\html下。
2、连接domino服务器:
创建domino Session会话链接,可以访问domino Objects,如下是一个新增文档操作示例:
import lotus.domino.*; public class myClass { public static void main(String argv[]) { try { String host = "192.168.128.2";//注意:有时候需要端口号 Session s = NotesFactory.createSession(host); String userName = "admin"; String userPwd = "pass"; // Domino会话(获取session) Session session = NotesFactory.createSession(host, NotesFactory.createORB(), userName,userPwd ); // Domino数据库 Database database = session.getDatabase(session.getServerName(), "mail\\admin.nsf", false); // 创建一个文档 Document nDoc = database.createDocument(); //设置主题 nDoc.appendItemValue("Subject",doc.g("Subject")); //指定表单 nDoc.appendItemValue("form", "Memo"); //增加附件 RichTextItem rti = (RichTextItem) nDoc.createRichTextItem("name4"); String attachFilePath = "E:\\test.txt"; rti.embedObject(EmbeddedObject.EMBED_ATTACHMENT, null,attachFilePath, attachFilePath); //保存文档 nDoc.save(); } catch(Exception e){ e.printStackTrace(); } } }
程序演示了如何访问domino库,如何新增文档;相关的修改、删除、查询等其它操作直接参考Administer Designner中的帮助API即可。