在domino中写webservice可以使用LotusScript,也可以使用java,由于LotusScript API提供的功能多数都是操作domino数据库中文档的,在web service中也有一些限制,具体如下:

1. 不要使用原生 LotusScript 类(如 NotesDatabase、NotesDocument 等)作为参数或返回值。
2. 不要使用变量或货币数据类型作为参数或返回值。
3. 不要使用列表或数组作为参数或返回值(可以使用数组,不过必须使用稍后在本文中所描述的一种特定数据类型)。
4. 不要使用定制类型作为参数或返回值。

而java的基础类库中则包含的丰富的功能,所以复杂的webservice使用LotusScript编写不是很方便,我们就都是使用java来编写的。

1. 在domino7.0中web服务是一个新的设计元素,我们来看下相关设置,先是基本标签:

1.1.注意 如果修改了WSDL接口则发出警告 选项:选中这个选项,如果隐式的 WSDL 结构更改时,例如,改变类名称、改变方法或函数的名称以及添加或删除类变量,那么将导致服务显示一条消息。在生产环境中,这样的改变可能会引起现有消费您的 Web 服务的软件客户机,由于解析更改了的 Web 服务响应结构产生的错误而停止工作。设置这一选项还能够阻止您保存这样的更改并给您一个将代码修改回原来状态的机会。在创建和测试阶段不需要设置这一选项。
1.2.在 PortType  域中,指定了这个特定服务的类中包含的可用操作(方法和函数)。通俗的说它就是 Web 服务代码中带有用户可访问的 public 方法的类。如果在没有设置这个域之前试图保存 Web 服务,那么 Domino Designer 7 客户机将产生一个警告。

2.安全性标签

2.1.使用调试信息编译java代码的选项,使在控制台上查看哪一行代码产生了运行时错误成为可能。web服务创建简要表 选项允许为概要分析收集运行时的统计信息。
2.2. 允许公共访问用户使用此web服务:该选项使得仅拥有数据库 ACL 中 “Read Public Documents” 访问权的用户可以使用该 Web 服务,当不想为大量用户授予完全的 Reader 访问权限(或更高级别)时,这点很有用。

3.高级标签

3.1可以在两个编程模型选项中进行选择:RPC 和 消息。RPC 支持常规方法参数和返回类型;消息限制方法接口为一个 “消息” 参数和返回类型(有关更多信息,请参阅联机文档)。对于 RPC 编程模型,RPC/编码 SOAP 消息格式是默认的,但是如果有使用其他格式的特殊要求,那么可以修改它。对于 消息 编程模型,SOAP 消息格式是在 Doc/literal 中固定的。(大多数情况下使用 RPC)。
3.2 端口类型名称服务元素名称 和 服务端口名称 域是在您保存 Web 服务时自动填充。在端口类型名称域中,指定访问服务的端口类型名称。这个指定对应于 WSDL 文档中 <wsdl:portType> 的 name 属性。对于每个服务,Lotus Domino 7 识别一个端口类型。在服务元素名称域中,指定服务的名称。默认情况下,该字段值是 PortType 名称加上单词 Service(尽管您可以使用任何想用的名称)。这个指定对应于 WSDL 文档中 <wsdl:service> 的 name 属性。在服务端口名称域中,指定访问服务的端口。默认情况下,该字段值是 Domino(尽管您可以使用任何想用的名称)。这个指定对应于 WSDL 文档中 <wsdl:service> 下面 <wsdl:port> 的 name 属性。对于每个服务,Lotus Domino 7 识别一个端口。

4.注意:解释 LotusScript 的 Web 服务引擎把所有公开的函数和变量名更改为大写字母。例如,当 Lotus Domino 7 自动生成 WSDL 时, GetEmailAddress 更改为 GETEMAILADDRESS。当您为这样一个 Web 服务创建消费客户机时,知道这一更改是重要的。不过java写的web service不会转为大写的。还是java的好,都是大写的看着不舒服。

5.举例说明,我们新建一个WebService设计元素并按上面设置,代码如下:

public class DbInfo
{
public String dbName;
public String dbSO;
} import lotus.domino.*;
import lotus.domino.types.*; public class DbInfoManager
{
public DbInfo[] getAllDbInfo()
{
DbInfo[] di = new DbInfo[2];
try
{……… }
catch(Exception e)
{
e.printStackTrace();
}
return di;
}
}

然后在Vs2005中添加web Service的wsdl描述,就可以使用该web Service提供的类和方法了,很简单吧。

如何开发Domino中的WebService的更多相关文章

  1. Domino 8.5 WebService开发一例

    原文地址:Domino 8.5 WebService开发一例作者:bj木棉 需求是要调用一个Domino上的WebService/JAVA来实现与人事管理系统里的人员同步,就是在人事管理系统中增加用户 ...

  2. 在Android中调用WebService

    某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查.我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数 ...

  3. 用cxf开发restful风格的WebService

    我们都知道cxf还可以开发restful风格的webService,下面是利用maven+spring4+cxf搭建webService服务端和客户端Demo 1.pom.xml <projec ...

  4. 你真的了解JAVA中与Webservice相关的规范和实现吗?

    非常多人在项目中使用Webservice,仅仅是知道怎样公布Webservice,怎样调用Webservice,但真要论其来龙去脉,还真不一定清楚. 一切一切还要从我们伟大的sun公司规范说起. JA ...

  5. 使用CXF开发JAX-WS类型的WebService

    使用CXF记得要先加入CXF的jar包 方法1: Cxf编程实现: l 使用jaxwsServerFactoryBean发布 webservice服务端. 需要设置: jaxwsServerFacto ...

  6. iOS开发 Xcode8中遇到的问题及改动

      iOS开发 Xcode8中遇到的问题及改动 新版本发布总会有很多坑,也会有很多改动. 一个一个填吧... 一.遇到的问题 1.权限以及相关设置 iOS10系统下调用系统相册.相机功能,或者苹果健康 ...

  7. Idea开发环境中搭建Maven并且使用Maven打包部署程序

    1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME的环境变量,然后将该变量添加到Path中 备注:必须要有JAVA_HOM ...

  8. Wabpack系列:在webpack+vue开发环境中使用echarts导致编译文件过大怎么办?

    现象,在一个webpack+vue的开发环境中,npm install echarts --save了echarts,然后在vue文件中直接使用 import echarts from 'echart ...

  9. 开发环境中biztalk项目设置注意事项(转)

      适用版本:biztalk 2006 适用环境:开发测试环境 在开发过程中,在开发环境中,一定会是一个对项目不断的修改.编译.部署.测试,查看测试结果,发现有问题,然后回到开发环境再修改.编译.部署 ...

随机推荐

  1. Microsoft Language and Locale Codes(微软语言和地区代码汇总)

    https://msdn.microsoft.com/en-us/library/ms533052(v=vs.85).aspx

  2. C#签名 NX90

    1.在VS中添加D:\Siemens\NX90\ \NXSigningResource.res文件,右击文件属性,将资源变为 嵌入式资源,即生成方式 2.编译生成exe文件或者dll文件,例如:xxx ...

  3. 20145225唐振远 《Java程序设计》第1周学习总结——小试牛刀

    20145225唐振远<Java程序设计>第1周学习总结——小试牛刀 教材学习内容总结 1.java语言概述:一门高级编程语言. 2.java语言的三种技术构架:java SE.java ...

  4. Wall--POJ1113(极角排序+求凸包)

    http://poj.org/problem?id=1113 题目大意:现在要给n个点,让你修一个围墙把这些点围起来,距离最小是l 分析  :现在就是求凸包的周长然后再加上一个圆的周长 #includ ...

  5. php 中文正则

    utf8编码中文 preg_match("/^[\x{4e00}-\x{9fa5}]+$/u") 而不是 "/^[\x4e00-\x9fa5]+$/u"

  6. Android之ListView——ArrayAdapter的学习与总结

    问题:当ListView选定的ListItem视图中存在一些UI组件,如CheckBox,希望保存状态,但实际上第一次完成时发现勾选后的选项在列表往下滑再滑回去后,状态没有保存 解决过程: 1)思考后 ...

  7. Java多线程死锁的产生实例

    死锁产生的四个必要条件: (1) 互斥条件:一个资源每次只能被一个进程使用.(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放.(3) 不剥夺条件:进程已获得的资源,在末使用完 ...

  8. jQuery in action 3rd - Introducing jQuery

    2014 年 10 月, jQuery Foundation 的总裁 Dave Methvin 发布了一篇博客(http://blog.jquery.com/2014/10/29/jquery-3-0 ...

  9. [译]GLUT教程 - glutPostRedisplay函数

    Lighthouse3d.com >> GLUT Tutorial >> Avoiding the Idle Func >> glutPostRedisplay 直 ...

  10. SQL Server优化技巧之SQL Server中的"MapReduce"

    日常的OLTP环境中,有时会涉及到一些统计方面的SQL语句,这些语句可能消耗巨大,进而影响整体运行环境,这里我为大家介绍如何利用SQL Server中的”类MapReduce”方式,在特定的统计情形中 ...