[Domino]Java访问Domino必需配置的服务器设置
应用场景
我们需要通过Java远程访问IBM Lotus Domino R6和R5服务器,从中获取用户邮箱的邮件信息等关键数据。我们不需要提供每一个用户密码以及ID文件。
我们的具体做法是,通过Domino ORB,来使得Domino Server与Java远程交互,双方使用IIOP来交互和交换对象数据。
访问的Domino服务器必须配置本文讲述的四个设置,否则会在Domino R6上得到以下错误:
错误日志片段:
错误代码为4488
lotus.domino.NotesException
at lotus.domino.NotesExceptionHelper.read(NotesExceptionHelper.java)
at lotus.domino.NotesExceptionHolder._read(NotesExceptionHolder.java)
at com.ibm.CORBA.iiop.RepImpl.invoke(RepImpl.java:325)
at com.ibm.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:36)
at lotus.domino.corba._IObjectServerStub.createSession(_IObjectServerStub.java)
at lotus.domino.cso.Session.OREFtoSession(Session.java:829)
at lotus.domino.cso.Session.<init>(Session.java:72)
at lotus.domino.cso.Session.createSession(Session.java:40)
在Domino R5上则得到如下错误:
错误日志片段:
错误代码为4536
lotus.domino.NotesException
at lotus.domino.NotesExceptionHelper.read(NotesExceptionHelper.java:48)
at lotus.domino.NotesExceptionHolder._read(NotesExceptionHolder.java:25)
at com.ibm.CORBA.iiop.RepImpl.invoke(RepImpl.java:325)
at com.ibm.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:36)
at lotus.domino.corba._IObjectServerStub.createSession(_IObjectServerStub.java:154)
这两个错误都代表“服务器拒绝访问”。
下面列出需要配置的四个安全设置。
DIIOP设置
请实施工程师检查Domino Server的DIIOP设置是否和图1一致。
设置范围:此设置对Domino R5/6都有效。
设置生效:在Domino R5版本中,修改并保存IIOP设置后,必须重新启动Domino Server,否则无法生效。
检查 Domino Directory 中 Server 文档。转至 Ports 选项卡,然后转向 Internet Ports 选项卡。查看 DIIOP 选项卡,“Authentication options”中的“Name & password”应该是Yes,如下图所示。这些部分有用于指定端口号以及启用/禁用端口的字段。下图显示了 Internet Ports--DIIOP 选项卡:
图 1 IIOP设置
特别要注意的是,在Domino R5版本中,修改并保存IIOP设置后,应该重新启动Domino Server,否则无法生效。即使命令tell diiop refresh强制刷新,也不能使修改生效。
而在Domino R6版本中,改进了这一功能,不需要重启服务器也不需要强制刷新,即可使这项IIOP设置修改生效!
各项参数的具体含义是:
No.
Items
Descriptions
1
Name and Password
DIIOP 验证需要名称和密码
2
Anonymous
DIIOP 验证不需要名称和密码
3
Enforce server access settings
DIIOP 使用 Security 选项卡下的 Server Access 设置
Access Server设置
请实施工程师检查Domino Server的Access Server设置是否和图2一致。
设置范围:此设置对Domino R5/6都有效。
检查 Domino Directory 中 Server 文档。转至 Security 选项卡,然后查看 “Server Access”中的“Access Server”应该是“All users can access this server”,如下图所示。
图 2 Access Server设置
Programmability Restrictions设置
请实施工程师检查Domino Server的Programmability Restrictions设置是否和图3或者图4一致。
设置范围:此设置对Domino R5和R6是有区别的。
设置生效:在Domino R5版本中,修改并保存此设置后,必须命令tell diiop refresh强制刷新,否则无法生效。
检查 Domino Directory 中 Server 文档。转至 Security 选项卡,然后查看 “Programmability Restrictions” 。
对于Domino R6,总共需要2处权限设置为“*”
请找到以下2个设置:
l Run unrestricted methods and operations:
l Sign agents to run on behalf of someone else:
请您为这些设置输入“*”,表示允许所有用户。
作了修改之后,保存并退出。
然后还需要在服务器命令行界面上输入命令“tell diiop refresh”,强制diiop刷新策略。
那么最终的效果应该如下图所示:
图3 R6 Programmability Restrictions设置
如果没有允许用户“Run unrestricted methods and operations”,那么当用户发送邮件要Sign时可能会遇到如下异常:
错误日志片段:
错误代码为4165
NotesException: You must have permission to sign documents for server based agents
at lotus.domino.NotesExceptionHelper.read(Unknown Source)
at lotus.domino.NotesExceptionHolder._read(Unknown Source)
此种情况下,“Sign agents to run on behalf of someone else”权限并非必要。
在Domino R6版本中,修改并保存了这一设置之后,并不需要强制刷新,即可使这项编程限制设置修改立即生效!
对于Domino R5,总共需要2处权限设置为“*”
请找到以下2个设置:
l Run restricted Java/Javascript/COM:
l Run unrestricted Java/Javascript/COM:
请您为这些设置输入“*”,表示允许所有用户。
作了修改之后,保存并退出。
然后还需要在服务器命令行界面上输入命令“tell diiop refresh”,强制diiop刷新策略。
那么最终的效果应该如下图所示:
图4 R5 Programmability Restrictions设置
特别要注意的是,在Domino R5版本中,修改了本编程限制设置后,应该命令tell diiop refresh强制刷新,才能使修改生效。
而在Domino R6版本中,改进了这一功能,不需要强制刷新,即可使这项编程限制设置修改生效!
HTTP设置
请实施工程师检查Domino Server的HTTP设置是否和图5或者图6一致。
设置范围:此设置对Domino R5和R 6是有区别的。
检查 Domino Directory 中 Server 文档。转至 Internet Protocols 选项卡,然后查看 HTTP 选项卡,找到“Allow HTTP clients to browse databases:”(或者为“允许HTTP客户浏览数据库”)设置。
Domino R6的图形界面
这是R6的图形界面:
图5 R6 HTTP设置
Domino R5的图形界面
这是R5的图形界面:
图6 R5 HTTP设置
安装R5时,默认这个设置是No(否),所以请实施工程师设置它为Yes(是)。
[Domino]Java访问Domino必需配置的服务器设置的更多相关文章
- java 访问剪切板(读取与设置)
设置文本到剪切板 public void setIntoClipboard(String data) { Clipboard clipboard = Toolkit.getDefaultToolkit ...
- Windows 7下配置JDK环境变量,JAVA环境变量配置,Tomcat服务器的使用
参考来源: http://www.cnblogs.com/pannysp/archive/2012/03/07/2383364.html 1. 常识: 1.1 War包 War包一般是在进行Web开发 ...
- 玩玩微信公众号Java版之一:配置微信公众平台服务器信息
在进行微信公众平台开发前,前先做好准备工作,好了以后,我们可以开始啦! 第一.准备好服务端接口 定义一个http服务接口,主要分为如下几步: 1.创建一个servlet类,用来接收请求: ...
- 如何在客户端配置ODBC来访问远程DB2 for Windows服务器
如何在客户端配置ODBC来访问远程DB2 for Windows服务器 马根峰 (广东联合电子服 ...
- 巨高兴,偶的文章 “如何在服务器上配置ODBC来访问本机DB2for Windows服务器”被推荐至CSDN博客首页
非常高兴,偶的文章 "如何在服务器上配置ODBC来访问本机DB2for Windows服务器"被推荐至CSDN博客首页,截图留念. 文章被推荐在C ...
- 使用nodejs和Java访问远程服务器的服务
既然这篇文章用的是nodejs和Java访问远程服务器的服务,那么咱们先用另一门编程语言,SAP的ABAP(我日常工作使用得最多的编程语言)来开发一个服务吧. 这是我用ABAP编程语言实现服务的类:Z ...
- Java访问Oracle服务器
Java访问Oracle服务器--orcl数据库---emp表 private static String driver = "oracle.jdbc.driver.Orac ...
- 如何配置web服务器
如何配置web服务器 (1)了解DNS主机名和IP地址.如果此WEB服务器在Internet上,需向ISP申请和注册此服务器的DNS主机名和IP地址.如果此服务器只在企业网内使用,则在内部的DNS服务 ...
- [原创]多版本Java环境变量的配置
起因: 偶然突发兴致, 收拾下自己的老T500电脑, 用来做个家庭开发用机. 应为每次装系统都有GHOST备份的习惯, 所以需要提前搭建好开发环境. 而且新装系统的目的之一, 也是想研究下Andr ...
随机推荐
- 极光推送---安卓Demo
对于一个一直干.net的程序媛来说,冷不丁的让小编干安卓,那种感觉就好似小狗狗咬小刺猬一样,不知道从哪儿开始下手,对于小编来说,既是挑战更是机遇,因为知识都是相通的,再者来说,在小编的程序人生中,留下 ...
- HashMap方法介绍
1. Map的遍历方式 (1) for each map.entrySet() Map<String, String> map = new HashMap<String, Strin ...
- Java与C之间的socket通信
最近正在开发一个基于指纹的音乐检索应用,算法部分已经完成,所以尝试做一个Android App.Android与服务器通信通常采用HTTP通信方式和Socket通信方式.由于对web服务器编程了解较少 ...
- 【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译
反编译工具 : 总结了一下 linux, windows, mac 上的版本, 一起放到 CSDN 上下载; -- CSDN 下载地址 : http://download.csdn.net/detai ...
- 见过的最全的iOS面试题
之前看了很多面试题,感觉要不是不够就是过于冗余,于是我将网上的一些面试题进行了删减和重排,现在分享给大家.(题目来源于网络,侵删) 1. Object-c的类可以多重继承么?可以实现多个接口么?Cat ...
- MySQL最佳实践
一.核心军规 - 不在数据库做运算:cpu计算务必移至业务层 - 控制单表数据量:单表记录控制在1000w - 控制列数量:字段数控制在20以内 ...
- C语言的预编译
由"源代码"到"可执行文件"的过程包括四个步骤:预编译.编译.汇编.链接.所以,首先就应该清楚的首要问题就是:预编译只是对程序的文本起作用,换句话说就是,预编译 ...
- leetcode 9 Palindrome Number 回文数
Determine whether an integer is a palindrome. Do this without extra space. click to show spoilers. S ...
- c++友元函数与友元类
友元函数和友元类的需要: 类具有封装和信息隐藏的特性.只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的.非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这 ...
- 【python】网页中字符编码转换 unicode-escape
有的时候我们用python来抓取网页会得到类似 '\\u003C\\u0066\\u0072\\u006F\\u006D\\u003E' 或者 '%u003c%u0062%u0072%u003e%u0 ...