• Java对Domino Objects的访问控制


    java 对 Domino Objects 的访问是通过高级包 lotus.domino 进行的。根据运行时环境,这个包中的接口是在其他两个包中的一个包中实现的:
      

      lotus.domino.local 提供了从同一计算机上的 Notes/Domino 软件进行调用。
      


      lotus.domino.cso 提供了从通过远程连接访问的 Domino 服务器进行调用。
      


      对于本地访问,Java 程序运行在安装有 Notes 客户机或者 Domino 服务器的计算机上。本地类由 JNI(Java Native Interface)构建来,用于访问与 JVM(Java Virtual Machine)相同的进程中的 Notes/Domino 二进制文件。对于远程访问,Java 程序使用 CORBA(Common Object Request Broker Architecture)请求 Domino 服务器所提供的服务。远程类使用 CORBA 通过 TCP/ip 网络访问服务器。远程访问由以下两个部分组成:
      


      客户机通过 HTTP 协议获得服务器的初始对象,作为 IOR (InterOperable Object Reference)。
      


      客户机通过 IIOP 连接进一步获得其他对象。

      

     

      在 lotus.domino 中,NotesFactory 类提供了 createsession 和其他方法,以便在 Java 应用程序和 servlet 中启用对 Domino Objects 的访问。非凡的调用方式确定了访问是本地还是远程的。要编译使用 lotus.domino 包的 Java 程序,类路径必须包含 Notes.jar(本地)或者 NCSO.jar(远程)。例如:
      set classpath=%classpath%;c:\lotus\domino\Notes.jar 或者 set classpath=%classpath%;c:\lotus\domino\data\domino\java\NCSO.jar 其中 Notes.jar 可以在任何 Notes/Domino 安装的程序目录中找到。NCSO.jar 可以在 Domino Designer 或 Domino 服务器数据目录下的 domino\java 目录中找到。
      

      本地调用

      createSession 的调用没有参数,第一个参数为 null 或者第一个参数为空字符串都表示本地调用。下列代码是等价的:
      


      Session s = NotesFactory.createSession()

      Session s = NotesFactory.createSession((String)null)

      Session s = NotesFactory.createSession("")

      


      将 null 转换成 String,以避免过载冲突。要从应用程序和 servlet 中实现本地调用,路径中必须包含 Notes/Domino 的程序目录,类路径中必须包含 Notes/Domino 程序目录中的 Notes.jar。例如:
      


      set path := %path%;c:\lotus\domino

      set classpath := %classpath%;c:\lotus\domino\Notes.jar

      


      Notes.jar 中包含 lotus.domino 和 lotus.domino.loca 包。本地调用需要用 NotesThread 类治理线程。NotesThread 类扩展了 java.lang.Thread,包含专门针对 Domino 的初始化和终止代码。您有以下三种选择:
      


      通过继续来执行线程。

      通过 Runnable 接口来执行线程。
      


      通过静态方法来执行线程。
      


      通过继续来执行线程
      要通过继续来执行线程,需要扩展 NotesThread,而不是 Thread,并且需要包含 runNotes 方法,而不是 run 方法。NotesThread 线程可以和任何其他线程一样通过 start 方法来启动。这种方式比静态方法(稍后讨论)轻易使用,且不易出错。
      


      import lotus.domino.*;
      

      public class myClass extends NotesThread

      {

      public static void main(String argv[])

      {

      myClass t = new myClass();

      t.start();

      }

      public void runNotes() // entry point for Notes thread

      {

      try

      {

      Session s = NotesFactory.createSession();

      // Operational code goes here

      }

      catch (Exception e)

      {

      e.PRintStackTrace();

      }

      }

      }
      


    -

  • 相关阅读:
    模拟死锁
    B站学习斯坦福大学Swift 语言教程 iOS11 开发【第一集】踩到的几个坑(XCode 13.2.1版本)
    数学之美番外篇:平凡而又神奇的贝叶斯方法
    joj 1753: Street Numbers
    二叉树的三种遍历(递归+非递归)
    joj 1905: Freckles
    joj 2630: A Pair of Graphs(同构图的判定)
    vue3.x 中获取dom元素
    defineProperty 和 Proxy 的区别
    vue 按钮的防抖和节流
  • 原文地址:https://www.cnblogs.com/hannover/p/1839779.html
Copyright © 2020-2023  润新知