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 服务器数据目录下的 dominojava 目录中找到(此包高版本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文件从服务器计算机复制到客户机计算机上。该文件在服务器的安装目录的DominoDatadominohtml下。

  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即可。

原文地址:https://www.cnblogs.com/zealon/p/4381568.html