服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java对domino objects的访问 (3)

远程调用

    在进行远程调用时,createsession 签名的第一个参数是非空字符串。第一个参数通常用来标识 domino 服务器所在的计算机。例如:

  session s = notesfactory.createsession("myhost.east.acme.com")

    或者
  session s = notesfactory.createsession("myhost.east.acme.com:63148")


    第二个示例指定了端口号,这样就无需在 myhost.east.acme.com 上运行 domino web 服务器。

    要从应用程序或者 servlet 执行远程调用,客户机计算机的类路径中必须包含 ncso.jar。ncso.jar 包含 lotus.domino 包、lotus.domino.cso 包、lotus.domino.corba 包以及 orb 类,orb 类包含用于远程类的实现代码。对于已安装的 domino designer 和 domino 服务器软件,ncso.jar 位于 domino 数据目录下的 dominojava 子目录中。对于没有安装 domino 软件的计算机,必须从安装该软件的计算机上复制归档文件。

   类路径必须包含归档文件,例如:

  set classpath := %classpath%;c:lotusdominodatadominojavancso.jar


编码
    编码比较简单。远程调用不使用 notesthread。只需使用主机名称和(可选)端口号进行 createsession 调用即可。

不使用线程时,模板将如下所示:

import lotus.domino.*;
public class myclass
{
    public static void main(string argv[])   
    {   
        try   
            {       
                string host = "myhost.east.acme.com:63148";           
                session s = notesfactory.createsession(host);           
                // operational code goes here
            }       
                catch(exception e)
            {       
                e.printstacktrace();
            }
        }   
    }
    下列模板将使用线程:

import lotus.domino.*;
public class myclass implements runnable
{
    public static void main(string argv[])   
    {   
        myclass t = new myclass();   
        thread nt = new thread((runnable)t);   
        nt.start();   
        }   
        public void run()   
        {   
        try   
            {       
                string host = "myhost.east.acme.com:63148";           
                session s = notesfactory.createsession(host);           
                // operational code goes here
            }       
                catch(exception e)
            {       
                e.printstacktrace();
            }
        }   
    }
 
管理
    远程访问还需要设置 domino 服务器和进行 tcp/ip 连接。安装服务器的计算机必须能够通过 tcp/ip 进行访问。在计算机的网络设置中,需要检查 tcp/ip 属性中的主机和域名的 dns 配置。必须能够用 internet 名称从客户机计算机 ping 到服务器计算机。例如,如果 domino 服务器的主机名称是 myhost,那么域名将是 east.acme.co:

java对domino objects的访问 (3)(图一)

    下列命令应该得到客户机计算机的有效响应:

    > ping myhost.east.acme.com

    在服务器 domino directory(names.nsf)的 server 文档 bsiscs 选项卡的“fully qualified internet host name”字段中,必须显示主机和域。通常,安装服务器安装时已设置了主机名,例如:

java对domino objects的访问 (3)(图二)

    如前面的编码示例所示,internet 名称是 createsession 主机的(第一个)参数。也可以使用服务器的 ip 地址。例如,如果 myhost.east.acme.com 的 ip 地址是 9.95.73.30,那么下列任何一个调用都有效:

    session s = notesfactory.createsession("myhost.east.acme.com:63148")

    或者

    session s = notesfactory.createsession("9.95.73.30:63148")

    必须运行服务器上的 diiop(domino iiop)任务。http 任务可能也需要运行,这取决于如何获取 ior。检查 domino directory 中 server 文档。转至 ports 选项卡,然后转向 internet ports 选项卡。查看 web 选项卡(用于 http)并找到 diiop 选项卡。这些部分有用于指定端口号以及启用/禁用端口的字段。通常,http 的端口号是 80,diiop 的端口号是 63148。下列屏幕显示了 diiop 选项卡:

java对domino objects的访问 (3)(图三)

    如果访问数据库时不知道文件名称(例如,要使用 dbdirectory.getfirstdatabase),那么必须允许通过网络浏览文件名。转至 internet protocols 选项卡、hhtp 选项卡和 r5 basics 选项卡。然后将“allow http clients to browse databases”设为 yes。

java对domino objects的访问 (3)(图四)

    要在服务器上启动 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

扫描关注微信公众号