Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->企业应用 ->Lotus Notes ->通过 Lotus Domino Java 代理消费 Web 服务
  相关分类: 
Lotus Notes
Office 系列教程
Outlook
Sharepoint
Windows应用技巧
  站内搜索: 
热门文章排行
热门文章排行 Domino控制台指令大全(05-31)
在Ubuntu 6.10 上安装Lotus Notes 7(04-11)
Win2003下部署Lotus Domino 7服务器(05-31)
手把手教您部署Domino 7服务器(下)(05-31)
Domino服务器命令表(05-31)
精采文章排行
精采文章排行 通过 Lotus Domino Java 代理消费 We(05-31)
在R6中如何把所有外来的smtp邮件都自(05-31)
如何用用户自定义的logo来替换iNotes(05-31)
分级 IBM Lotus Domino 邮件服务器(05-31)
Domino控制台指令大全(05-31)
 

通过 Lotus Domino Java 代理消费 Web 服务

作者:Webmaster   来源:Linuxdby.com   点击:   日期:2007-05-31 [收藏] [投稿]

  IE是否经常中毒?推荐您

Apache Axis wiki

HelloWorld.java 是一个描述 Web 服务可以处理的方法和自变量的接口。MyComplexClass.java 是 MyComplexClass 对象的 JavaBeans 版本,当调用 getMyComplexClass() 方法时 Web 服务用它进行响应。

现在,在 Domino 7 数据库中创建一个新的脚本库,可以使用它消费 Web 服务。







把 Java 文件导入 Lotus Notes

Web 服务消费代理使用 Apache Axis 生成的文件。导入 Java 文件最容易的方法是创建 Java 脚本库(不要与 JavaScriptlibrary 混淆)。导入文件并记住将工作目录设置为基础路径(参见图 2)。


图 2. 保存 Apache Axis 生成的 Java 存根的脚本库
保存 Apache Axis 生成的 Java 存根的脚本库

注意:基础目录是工作目录,而不是 DefaultNamespace 目录,这一点非常重要。

当脚本库放在适当的位置并编译过之后,就可以关闭它并创建新的 Java 代理。这个代理使用 Apache Axis 客户机类。这些类是 Axis 框架的一部分,所以必须导入。

Apache Axis 客户机位于 Axis 目录下的 Java 存档文件(JAR 文件)中。有一些向代理公开这些类的选项,其中一个选项是直接在代理中导入这些类。但是由于这些类的天然性质 —— 当您发现 Web 消费是多么容易的时候就可以多次使用它们 —— 把它们存储到 IBM Lotus Notes 的其他 JAR 文件使用的 .\jvm\lib\ext 目录中是更自然的方法。

在 Lotus Notes 客户机目录中,将 JAR 文件 axis.jar、commons-discovery-0.2.jar 和 commons-logging-1.0.4.jar 从 .\Axis\lib 复制到 .\jvm\lib\ext。(在使用这些附加文件之前必须重新启动 Lotus Notes 客户机。)当 Lotus Domino Designer 运行时,在开始调用 Web 服务之前只剩下几个步骤。







调用 Web 服务的 Lotus Notes 代理

当 JAR 文件放在 .\jvm\lib\ext 目录下并已经重新启动 Lotus Domino Designer 之后,就可以编写 Web 消费代理的代码了。从创建普通的 Java 代理开始。下一步,打开 Edit Project 窗口导入先前创建的脚本库。关闭项目属性窗口,并添加必须的如下所示的导入行:

00 import lotus.domino.*;01 import java.net.URL;02 import org.apache.axis.client.Call;03 import org.apache.axis.client.Service;04 import DefaultNamespace.*;05 import java.io.*;06 public class JavaAgent extends AgentBase {07  public void NotesMain() {08   try {09    Session session = getSession();10    AgentContext agentContext = session.getAgentContext();11   12    URL  endpoint = new URL("http://localhost:80/MyWebService.nsf/MyWebService");13 14    Service service1 = new Service();15    DominoSoapBindingStub service = new DominoSoapBindingStub(endpoint,service1);16    String greeting=service.getGreeting();17    System.out.println(greeting);18 19    String greeting2=service.getGreeting("Lotus");20    System.out.println(greeting2);21 22  } catch(Exception e) {23     e.printStackTrace();24   }25 }26}

在第 12 行,创建一个标准的 Java URL 指向您想要使用的 Web 服务。在第 14 行,实例化 Apache Axis 提供的 Service() 类。然后,在第 15 行实例化 DominoSoapBindingStub 服务,并使用新创建的 service1 对象和第 12 行的 URI 提供它。在第 16 行,用 Web 服务方法 getGreeting() 提供的值设置新的字符串。

保存代理并启动 Java 控制台。(这个控制台是惟一一个现在能看到任何活动的地方。)当打开调试窗口时,选择新的数据库,然后运行代理,如图 3 所示。


图 3. 当代理完成后的 Java 控制台
当代理完成后的 Java 控制台

正如您所见,使用 Apache Axis 和 wsdl2java 工具非常节省时间。以前,在 Lotus Domino 5 代理中消费 Web 服务时,您必须坐下来手工解码 SOAP 消息!




 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 2 34 下一页

上一篇:在R6中如何把所有外来的smtp邮件都自动地拷贝到一个数据库中   下一篇:没有了
·在R6中如何把所有外来的smtp邮件都自动地·如何用用户自定义的logo来替换iNotes Web·分级 IBM Lotus Domino 邮件服务器·Domino控制台指令大全·如何禁止Norton扫描Notes·Lotus Notes应用中多页文本的处理·Domino6新功能-间接文件及其用途·备份Domino服务器的基本原则·Domino6新功能-集中目录结构

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·通过 Lotus Domino Java 代理消费 Web 服

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。