服务热线:13616026886

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

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

java对domino objects的访问 (4)

获取 ior


    在 domino 服务器上,ior 是一个名为 diiop_ior.txt 的文件,位于 domino 数据目录下的 dominohtml 子目录中。ior 是对象的字符串编码,包含对服务器的 corba 访问的识别信息。客户机会将字符串 ior 解码,并用它来建立远程会话。 默认情况下,远程客户机通过 web 服务器端口(其通常支持 http 请求)来请求服务器 ior,然后通过 diiop 端口进行会话请求。可以分别执行这两个请求。例如:

 

string ior = notesfactory.getior("myhost.east.acme.com");
// get ior using web server port
session s = notesfactory.createsessionwithior(ior);
// create session using diiop port
 

 


    等价于:


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

在 notesfactory 调用中,可以在主机名称或 ip 地址后面添加冒号和端口号,来指定用于获取 ior 的主机端口。如果 web 服务器没有运行,可以使用这种机制,通过 diiop 端口支持 ior 的 http 请求,例如:

 

string ior = notesfactory.getior("myhost.east.acme.com:63148");
// get ior using diiop port
session s = notesfactory.createsessionwithior(ior);
// create session using diiop port
 

 


    然而,两步式编码顺序并不是必需的。可以将其简化为:


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


    不能用 diiop 端口获取除 diiop_ior.txt 之外的文本文件。

 

    如果通过 web 服务器端口来获取 ior,web 服务器端口,那么必须允许进行匿名访问。在 domino directory 的 server 文档中,转至 ports 选项卡,然后转至 web 选项卡。确保 authentication options 下的 anonymous 字段被设为 yes。

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

    指定 diiop 端口来获取 ior 的能力是 notes/domino 6 的新功能。现在就可以使用远程调用,无需允许对 web 服务器的匿名访问,甚至无需启动 web 服务器。

 

    也可以通过其他方法获取 ior,然后使用 createsessionwithior。例如,可以将 diiop_ior.txt 文件从服务器计算机复制到客户机计算机上。如果客户机上包含对将使用的服务器有效的 diiop_ior.txt 文件,那么可以使用下列代码:

 

import lotus.domino.*;
import java.io.*;
public class platformior
{
    public static void main(string argv[])   
    {   
        try       
            {           
                fileinputstream fin = new fileinputstream(           
                "c:lotusnotesr6diiop_ior.txt");           
                inputstreamreader fisr = new inputstreamreader(fin);           
                bufferedreader br = new bufferedreader(fisr);           
                string ior = br.readline();           
                fin.close();           
                session s = notesfactory.createsessionwithior(ior);           
                //operational code goes here           
                }           
                catch(exception e)           
                {           
                e.printstacktrace();           
                }
            }
        }
    注意 ior 设置可能会失效。服务器上的以下任何更改都会使客户机上的 diiop_ior.txt 文件失效:


  更改 diiop 端口号。


  启用或禁用 diiop 端口。


  更改 tcp/ip 地址。


    可以通过指定服务器主机名称而不是服务器的 tcp/ip 地址来避免最后一项。在 server 文档中,转至 internet protocols 选项卡,然后转至 diiop 选项卡。在“host name/address”字段中指定服务器的 internet 主机名。

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

    这将强制 diiop_ior.txt 使用服务器的主机名而不是使用 ip 地址。也可以通过 notes.ini 变量 diiopiorhost 来强制使用主机名。

扫描关注微信公众号