Java远程访问Domino数据库推荐采用CORBA实现,但配置非常关键,笔者在工作中也遇到了这个问题,在查阅资料的过程中发现,很多文章明显存在一些误区或者说没有写清楚的地方,现将笔者的实践经验总结出来,和大家分享。Domino服务器版本是5.0.9。
基本步骤:
1.修改Domino服务器安全性配置,允许你的用户运行Java/CORBA。具体操作是: 打开Lotus Domino Administrator,进入配置,打开当前服务器文档,选择“安全性”选项卡,在右下角“Java/COM 谁可以-”栏中,分别在“运行有限制的Java/Javascript/COM”和“运行无限制的Java/Javascript/COM”两项中填上你的连接用户名或用户所在组。
2.给你的用户加上Internet地址和口令。如果你的用户没有Internet地址和口令,那么只有Domino的管理用户才可以连接,其他普通用户是连不上的,而且也没有具体的提示。笔者曾在这个地方浪费了一天的时间。
注册个人时,点击高级选项,填写Internet网络域(Internet地址会自动生成,如myname@workgroup),同时选中“设置Internet口令”,以后将用这个Internet口令来建立会话。如果是已经注册的用户,则可以通过编辑注册信息来修改。
3.打开notes.ini文件,确认加载了DIIOP服务。检查notes.ini文件中的类似这样一行:
ServerTasks=Update,Replica,Router,AMgr, AdminP,CalConn,Sched,DIIOP,HTTP,LDAP
4.还有其他配置,如用户对Server的访问权限、DIIOP端口设置等,这些启用Domino服务器的缺省配置即可。配置完了需要重启Domino服务器。
5.将Domino服务器主目录下的data/domino/Java/NSCO.jar文件拷入Java工作环境,并在工程的构建路径中加入,或者在classpath环境变量中加入。
6.将Domino服务器主目录下的data/domino/html/diiop_ior.txt(CORBA访问的识别信息)拷入你的Java工作环境,或者开放Domino服务器的HTTP服务。
7.现在可以编写连接程序进行测试了:
import lotus.domino.*; import Java.io.*; class Test { public static void main(String args[]) { Session session; String ior; String dominoURL="11.68.81.27"; //DOMINO服务器的IP地址 String username="username"; //用户ID String password="password"; //用户的internet口令 try { //如果已将ior文件拷到本地,则直接读ior文件 try { BufferedReader iorin= new BufferedReader(new FileReader("diiop_ior.txt")); ior=iorin.readLine(); iorin.close(); } catch (IOException e) { ior=null; } //如果读不到diiop_ior.txt文件,则需要通过网络从服务器下载这个文件 //这需要domino服务器开放http服务 if(ior==null) ior =NotesFactory.getIOR(dominoURL);//下载IOR session = NotesFactory.createSessionWithIOR(ior,username,password); System.out.println(session); //如果这一行打印出来了,表示连接成功 } catch (NotesException ex) { System.out.println(ex.getClass().getName()+":"+ex.id); } }}
需要注意的是:
1.必须开放Domino服务器的HTTP服务。
甚至连Lotus domino designer的帮助文档都是这么说,其实不然,如果你直接将DIIOP_IOR.txt文件从Domino服务器拷贝过来了,HTTP服务就不必要启动。启动HTTP服务的惟一目的就是下载这个文件。
2.必须要在Domino服务器配置中允许 HTTP 客户浏览数据库。
这个是完全不必要的,上面已经讲了,开放HTTP服务仅仅是下载diiop_ior.txt文件,并不需要浏览数据库。
3.有些文章称,确保设计者的机器上Notes.ini文件中含有以下行: ALLOW_NOTES_PACKAGE_APPLETS=1。其实,这个是不必要的。
4. 有些文章提到要根据IDL文件创建自己的CORBA库,这样也没必要。对于远程访问,只需将data/domino/Java/NSCO.jar拷贝过去; 对于本地访问,只需将Domino目录下的notes.jar文件加到classpath中即可。
www.hahagaoxiao.com下沙转贴
本文转自http://soft.chinabyte.com/database/80/12998080.shtml
相关推荐
本压缩包“java访问domino数据库.rar”提供了关于如何利用Java来访问和操作Domino数据库的重要信息。下面将详细讨论Java与Domino集成的关键知识点。 1. **Java与Domino的集成**: - Java可以借助Lotus Domino的...
Java远程访问Domino邮箱数据是通过使用Lotus Domino Java API(Lotus Domino JNA或Lotus Domino Access for Java)来实现的。这个过程涉及到多个步骤和技术,包括理解Lotus Domino的架构、设置Java环境以及使用特定...
"Java远程访问Domino.doc"可能包含关于构建和执行查询的例子。 6. **样例程序**:"Java访问Domino.doc"很可能包含具体的代码示例,展示如何初始化连接、执行查询、处理结果集以及关闭连接。这些示例对于初学者来说...
首先,需要了解 Java 对 Domino 对象的访问是通过调用 lotus.domino 包来实现的。这个包提供了两种方式来访问 Domino 对象:本地调用和远程调用。本地调用是指在 Notes 客户端或 Domino 服务器所在的计算机上运行 ...
要使用Java访问Domino对象,首先需要在环境中配置JDK和IDE,例如Eclipse或IntelliJ IDEA。然后,引入Lotus Domino的JAR库,这些库提供了访问Domino对象的API。常见的访问协议有IIOP(Internet Inter-ORB Protocol)...
Java访问Domino服务器主要涉及到的是使用Java编程与IBM Lotus Domino服务器进行交互的技术。Lotus Domino是一种协同软件平台,常用于电子邮件、日历管理、任务分配等。本文将深入讲解如何利用Java来操作Domino服务器...
Java 读取 Lotus Domino ...了解以上知识点,你就可以利用 Java 有效地读取和操作 Lotus Domino 数据库,实现定制化的业务逻辑和数据处理。在实际开发中,确保遵循最佳实践,优化性能,同时保证数据的安全性和完整性。
本文档主要介绍如何利用Java语言访问Domino对象,包括数据库、视图、文档等。这些操作对于开发基于Lotus Domino/Notes的应用程序至关重要。文中所述内容主要适用于Lotus Domino/Notes 6版本,而在R5版本中可能会有所...
6. **通过JAVA CORBA访问Domino**:CORBA(Common Object Request Broker Architecture)是一种分布式计算技术,这部分可能讲述了如何使用Java的CORBA接口来访问和操作Domino对象,提供跨平台的远程调用能力。...
7. **数据库安全性**:掌握Domino的访问控制列表(ACL),理解角色和权限的分配,以及如何保护数据库的安全。 8. **Web应用开发**:学习如何将Domino应用转化为Web应用,理解HTTP代理和XPages技术,以适应互联网...
* HTTP Server:提供了 Web 服务,能够实现远程访问 Domino 服务器。 * POP3、SMTP、IMAP Server:提供了邮件服务,能够实现邮件的发送和接收。 * Remote Debug Server:提供了远程调试服务器功能,能够实现远程调试...
2. **Domino数据库**:在Domino中,数据库是核心数据结构,存储文档(类似表单)和视图(用于数据检索)。每个数据库都有一个.nsf扩展名,支持多用户同时访问和编辑。 3. **LotusScript**:是Domino中的主要编程...
6. **Default access for this web service**:控制Web服务的访问权限,可以超出数据库ACL的限制。 此外,Options附签提供了编程模型的选择,例如RPC(Remote Procedure Call)或Document Model,以及其他自定义...
Lotus Domino Web是该平台的一个扩展,旨在将Domino的功能通过Web浏览器进行访问,从而实现跨平台的无缝集成和远程访问能力。 ### 高级编程概念 高级编程通常指的是对软件开发中的复杂问题进行深入研究和解决的...
Domino数据库的结构由表单、域、文档和视图等部分组成。表单定义了用户界面和功能,域用于数据输入、存储和展示,文档是数据存储的基本单元,相当于关系型数据库中的行记录,而视图则为用户提供了文档的筛选和展示...
如今,Domino应用程序可以通过各种平台上的浏览器或原生应用访问,增强了远程办公和移动用户的工作效率。 7. ** 部署与管理** 在部署和管理方面,Lotus Domino提供了一套全面的管理工具,包括服务器监控、性能优化...
8. **移动和离线应用**:讨论如何为移动设备优化Domino应用,以及如何实现离线访问功能,以适应不同场景的需求。 9. ** LotusScript高级编程**:除了基础的LotusScript语法,还会涉及复杂的脚本库、代理和触发器的...
Domino支持Web访问,使得用户可以通过标准的Web浏览器访问Notes数据库的功能。这称为Domino Web Access(DWA),允许远程用户无需安装Notes客户端即可使用协作工具。 10. **Domino Designer** Domino Designer是...
Domino API是Lotus Domino提供的一个强大接口,允许开发者通过各种编程语言(如Java、C++、LotusScript)来访问和操作Notes数据库。使用Java操作Domino API,你可以实现以下功能: 1. **数据库操作**:创建、打开、...