domino java 读取文档附件inputstream_Java对Domino Objects的访问 (4)

本文介绍如何在Domino服务器上获取并使用IOR(Internet Object Request),包括通过Web服务器端口和DIIOP端口获取IOR的方法,以及如何创建会话。还介绍了在无法使用Web服务器的情况下通过DIIOP端口获取IOR的新特性。

获取 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。

a734976164d834e63acc2c1b2016de8b.png

指定 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 主机名。

8b8f7e438e4cb3914034f3e0c861ebd8.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值