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

  • 相关阅读:
    [PHP] Laravel中env函数返回null原因
    [PHP] laravel8 发送通知邮件
    [PHP] hyperf代码热更新-hyperf-watch
    [日常]wps插入页眉页脚
    [linux] du查找数据大的目录
    [PHP] new static()和new self()的区别
    [docker] docker删除容器
    [docker] docker删除镜像
    [javascript] js删除数组中的元素
    [PHP] hyperf框架代码热更新
  • 原文地址:https://www.cnblogs.com/zealon/p/4381568.html
Copyright © 2020-2023  润新知