Domino 8.5 WebService开发一例
需求是要调用一个Domino上的WebService/JAVA来实现与人事管理系统里的人员同步,就是在人事管理系统中增加用户后,自动在Domino中注册该用户和邮箱。
考虑了一下,大概有几种方式可以实现
1.在Domino中建立webservice提供者,人事管理系统访问这个webservice将参数传过来,通过webservice实现用户注册;
2.通过java/lotusscript代理实现;
3.在人事管理系统引入Notes的类库,在人事管理系统中开发程序访问Domino DIIOP端口对Domino操作;
4.引入LDAP类,通过对Domino LDAP的读取进行同步。
因为webservice提供者和webservice使用者是Domino
8.5里的新功能,所以花了两天时间研究了一下,用webservice实现了这个需求。做好之后发现还是挺方便的,主要是接口统一了,和lotusscript代理比起来,与第三方系统集成就容易多了。
一、webservice提供者的开发
首先在domino应用程序里建立一个新的webservice提供者,命名叫regUser
在这个webservice里创建java
class,regUser.java,源代码的框架基本是自动生成的,自己编写需要处理的代码就好了,首先引入需要的类
import lotus.domino.*;
import java.net.*;
import java.io.*;
然后可以像java代理一样,通过domino session对domino进行用户注册操作
Session session;
session = WebServiceBase.getCurrentSession();
Registration reg = session.createRegistration();
reg.setRegistrationServer("Mail");
reg.setCreateMailDb(true);
reg.setCertifierIDFile("c:\IBM\Lotus\Domino\MailData\cert.id");
注册的代码就省略了,可以参考domino designer help里的registration类
因为注册类填写的用户信息较少,所以注册用户之后,需要把用户管理程序传过来的其他参数同步,同样可以像java代理一样直接对用户文档通过replaceItemValue进行操作
Database db = session.getDatabase("Mail","names.nsf");
View view = db.getView("People");
Document doc = view.getDocumentByKey(userName, false);
doc.replaceItemValue("EmployeeID", userId);
doc.save(false,false,true);
保存之后,还要修改webservice的属性里,端口类型类的值,改为我们调用的regUser方法
因为是注册用户和修改文档的操作,还要修改属性中“安全”的选项
这样这个webservice就做好了,非常简单,如果代码有错误,domino
designer也会自动提示在哪行有什么错误,而且可以提供快速修正的方法。
二、webservice使用者的开发
regUser服务做好之后,因为没有人事管理系统的访问权限,无法直接用第三方系统进行直接调试,我们可以先在domino中开发一个webservice使用者,通过用人事管理系统提供的接口,用相同的调用方式来访问这个regUser服务进行测试。
开发webservice使用者更加简单,新建一个webservice使用者,设置名称,输入webservice提供者的WSDL地址就可以了,类型用lotusscript或者java都没关系,因为只是调用服务,实际的工作是由regUser服务完成的,所以这里在webservice使用者中并不需要编写代码。
建好webservice使用者之后,代码是自动生成的,非常简单,就是读取了regUser的WSDl,为regUser服务定义了addUser方法(之前在webservice提供者中定义的注册用户方法命名为addUser,有22个参数要传递)
%INCLUDE "lsxsd.lss"
Class RegUser As PortTypeBase
NEW
Call
Service.Initialize ("UrnDefaultNamespaceregUserService", _
"regUserService.Domino",
"http://mail.cn.ibm.com:80/test.nsf/regUser?OpenWebService",
_
"RegUser")
End
Sub
Function
addUser(in0 As String, in1 As String, in2 As String, in3 As String,
in4 As String, _
in5 As
String, in6 As String, in7 As String, in8 As String, in9 As String,
in10 As Long, _
in11 As
String, in12 As String, in13 As String, in14 As String, in15 As
String, in16 As String, _
in17 As
String, in18 As String, in19 As String, in20 As String, in21 As
String, in22 As String) As String
Let addUser
= Service.Invoke("addUser", in0, in1, in2, in3, in4, in5, in6, in7,
in8, in9, in10, in11, in12, in13, in14, in15, in16, in17, in18,
in19, in20, in21, in22)
End
Function
End Class
最后,编写一个lotusscript代理来访问这个webservice使用者,也很简单,就是调用addUser方法,传递测试数据。
Option Public
Option Declare
Use "regUserFromWebService"
Sub Initialize()
Dim service
As RegUser
Set
service=New RegUser
MsgBox
service.addUser("955123", "zhangsan",
"zhangsan","2000.07","2011.03","","000111","05","zhangsan","Male",33,"110101198001010016","123456","66666666","13800138000","zhangsan@cn.ibm.com","engineer","","China","","Beijing","","07")
End Sub
运行代理,成功啦!
Domino 8.5 WebService开发一例的更多相关文章
- 如何开发Domino中的WebService
在domino中写webservice可以使用LotusScript,也可以使用java,由于LotusScript API提供的功能多数都是操作domino数据库中文档的,在web service中 ...
- Webservice开发概念
一.Web Service基本概念 Web Service由两部分组成 SOAP--Web Service之间的基本通信协议. WSDL--Web Service描述语言,它定义了Web Servic ...
- eclipse下的webservice开发
关于eclipse下的webservice开发,有非常多的教程,这里只记下学习过程中的弯路: 1.无论是CXF模式还是AXIS模式,在出现start server之后,点击next报错:"s ...
- [推荐]WebService开发知识介绍
[推荐]WebService开发知识介绍 WebService开发手册 http://wenku.baidu.com/view/df3992ce050876323112128a.html WebSe ...
- Webservice开发、引用
一.Webservice开发 1.在解决方案右键添加新建项目,新建空的web应用程序 2.在新建的项目右键添加新建项选择web服务 3.这里就是webservice 里的方法,可以添加自己需要的方法( ...
- Delphi XE5通过WebService开发Web服务端和手机客户端
Delphi XE5通过WebService开发Web服务端和手机客户端介绍 我们开发一个三层的android程序 建立一个webservices stand-alone vcl applicati ...
- spring+springmvc+hibernate架构、maven分模块开发样例小项目案例
maven分模块开发样例小项目案例 spring+springmvc+hibernate架构 以用户管理做測试,分dao,sevices,web层,分模块开发測试!因时间关系.仅仅測查询成功.其它的准 ...
- 详解WebService开发中四个常见问题(2)
详解WebService开发中四个常见问题(2) WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...
- 详解WebService开发中四个常见问题(1)
详解WebService开发中四个常见问题(1) WebService开发中经常会碰到诸如WebService与方法重载.循环引用.数据被穿该等等问题.本文会给大家一些很好的解决方法. AD:WO ...
随机推荐
- java面试(毕业一年后准备换工作)
还记得一年前的今天,在网上投简历,找工作,当时找的工作的工作地点都在成都,其实自己挺想去外面工作几年的,如果毕业后就在成都工作,今后基本不可能去外省了, 所以刚好上海的一家外包公司来成都理工校招,导员 ...
- 尝试跑一跑Scut
前段时间都在用 IIS+WCF+Redis+MSSQL 的框架做服务器,前段时间看到了 Scut 的开源框架,整个架构还是蛮干净整洁的... 今天抓来跑一跑. 按照教程安装好所有的环境,版本是6.7. ...
- 转:PHP - .htaccess设置显示PHP错误
使用.htaccess可以在某种程度上更改PHP的错误显示的设置,实际上,相当于更改PHP.ini的参数,很是方便. 将以下相应代码放到对应目录中的.htaccess文件,即可实现相应功能. 关闭错误 ...
- 【HDOJ】1314 Numerically Speaking
学了几天的Java了,终于独立A了一道大数计算.感觉还得练Java啊. import java.util.Scanner; import java.math.BigInteger; import ja ...
- POJ1836 Alignment(LIS)
题目链接. 分析: 从左向右求一遍LIS,再从右向左求一遍LIS,最后一综合,就OK了. 注意: 有一种特殊情况(详见discuss): 8 3 4 5 1 2 5 4 3 答案是:2 AC代码如下: ...
- Silverlight闹钟
一:截图 二:XAML代码 <UserControl x:Class="SilverlightClock.MainPage" xmlns="http://schem ...
- HDU_2544——最短路,Dijkstra模版
Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要 ...
- Java Web开发常见问题
一.Tomcat服务器常见启动问题:(1).Java_home环境变量,由于tomcat服务器的bin目录中的一些jar文件必须使用到java类库,所以必须先配置Java_home环境变量.(2).端 ...
- 手机站点开发及手机中图片加速显示img的Canvas方法
随着手机开发越来越流行,手机开发的非常多框架也应运而生,比較好用的手机站点开发框架推荐例如以下: 1.zeptojs.里面封装了非常多手机特有方法,比如touch.js等等. 和jquery使用方法差 ...
- ActiveX控件打包成Cab置于网页中自动下载安装(转载)
原文出自http://www.iteye.com/topic/110834 [背景] 做过ActiveX控件的朋友都知道,要想把自己做的ActiveX控件功能放在自己的网页上使用,那么用户在客户端就必 ...