在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. 何时使用Swift Structs和Classes

    Swift 圈中有一个被反复讨论的话题是:何时使用struct,何时使用class.我觉得今天我也要给出我的个人观点. 值 VS 引用 答案真的很简单了:当你需要用值语义的时候使用class,需要用引 ...

  2. css3之过渡

    transition属性 属性 描述 transition 设置4个过渡效果属性值 transition-property 设置过渡的属性名 transition-duration 设置过渡效果时间, ...

  3. Java复数的四则运算

    import java.util.Scanner;   import com.sun.jndi.url.iiopname.iiopnameURLContextFactory;   public cla ...

  4. 关于IE8及其以下的IE版本不支持getElementsByClassName

    之前做一下项目的时候知道IE8以及其以下的版本不支持getElementsByClassName,于是乎自己写了一个函数重新定义getElementsByClassName,函数代码如下: funct ...

  5. iOS 图片压缩

    + (UIImage *)scaleFromImage:(UIImage *)image {    CGSize newSize = CGSizeMake(366, 366);   //目标图片的大小 ...

  6. struts2--文件上传与下载

    1.文件上传: --表单准备: > 需把HTML表单的enctype属性设置为multipart/form-data; > 需把HTML表单的method属性设置为post: > 需 ...

  7. SQLSERVER DBA容易犯的十个错误

    SQLSERVER DBA容易犯的十个错误 翻译自:http://sqlsentry.tv/top-10-administrative-mistakes-on-sql-server/ 除了排名前十的错 ...

  8. Magicodes.WeiChat——WeChatOAuthTest(网页授权获取用户基本信息)

    Demo访问地址:http://wechat.magicodes.net/app/AppDemo/WeChatOAuthTest?tenantId=1 关于公众号如何获取用户信息,请参考此文档:htt ...

  9. 15 个很棒的 Bootstrap UI 界面编辑器

    Bootstrap Magic BootSwatchr Bootstrap Live Editor Fancy Boot Style Bootstrap Lavish Bootstrap ThemeR ...

  10. 重新延时运行的Js 实现

    场景 1. AutoComplete 插件, 当用户的输入空闲0.5s 时,才向服务发送请求.而不是用户输入每一个字符都要请求服务器. 2. 图片懒加载时,用户拖动滚动条空闲0.5s时,才遍历懒加载的 ...