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 存根的脚本库
注意:基础目录是工作目录,而不是 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 控制台
正如您所见,使用 Apache Axis 和 wsdl2java 工具非常节省时间。以前,在 Lotus Domino 5 代理中消费 Web 服务时,您必须坐下来手工解码 SOAP 消息!
|