远程调用
在进行远程调用时,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: