表 1 显示了在我们的系统中使用的文件结构。如果您选择复制这个结构,可以重用稍后提到的批处理文件和类路径,也可以选择使用您自己的策略。我们为每一个目录使用工作名称,这样不会混乱。批处理文件是由变量驱动的,所以可以很容易地修改一两行代码使它在您的系统中运行。 表 1. 建议的文件结构 | 工作名称 | 路径 | | 服务器路径 | C:\lotus\DominoR7StandAlone | | JDK 版本 2 | C:\java\j2re1.4.2_09 | | Apache Axis | C:\java\Axis | | 工作目录 | C:\java\consumer |
下载并安装 Apache Axis 在下载 Apache Axis 之后,将软件包解压到 Axis 目录。(参见表 1 的建议路径。)本文使用 Apache Axis 提供的两个特性。一个是通信类,实际上,除了要把它们导入 Domino 环境,您不需要知道其他的任何东西。另一个特性是 wsdl2java 工具,Apache Axis 可以使用该工具读取 WSDL 文件并为所有需要的方法和对象生成完整的 Java 存根。 可以启动 shell 并开始运行 Apache Axis 类,但是我们发现启动每个命令要使用 100 个字符以上的类路径是很不方便的。一个解决方法是在一般 Java 类路径中为 Apache Axis 设置所需要的完整的类路径,但是我们更喜欢另一个解决方法:维护设置类路径的批处理文件。以下代码片段显示了名为 wsdl2java.bat 的批处理文件,它存在于工作目录中。 @echo OFFrem *******************************************************rem *** wsdl2java.bat ****rem *******************************************************set AXISPATH=c:\java\AXIS\libset JAVAPATH=C:\java\j2re1.4.2_09set DOMINOJAVAPATH=C:\lotus\DominoR7StandAlone\jvm\lib\extset CP=%AXISPATH%\axis.jarset CP=%CP%;%AXISPATH%\commons-logging-1.0.4.jarset CP=%CP%;%AXISPATH%\commons-discovery-0.2.jarset CP=%CP%;%AXISPATH%\jaxrpc.jarset CP=%CP%;%AXISPATH%\saaj.jarset CP=%CP%;%DOMINOJAVAPATH%\mail.jarset CP=%CP%;%DOMINOJAVAPATH%\activation.jarset CP=%CP%;%AXISPATH%\wsdl4j-1.5.1.jar%JAVAPATH%\bin\java -cp %CP% org.apache.axis.wsdl.WSDL2Java %1 |
创建 Web 服务消费代理 通过从 Web 服务获取 WSDL 文件开始创建代理。我们假设您正在使用已提供的 Web 服务 —— MyWebservice —— 并已经将它复制到 Lotus Domino 7 服务器。要想看到 WSDL 文件,将浏览器指向数据库并通过命令 ?WSDL 打开 Web 服务,如图 1 所示。 图 1. 在浏览器中显示 WSDL 文件的例子
在确定 WSDL 文件出现后,可以把 WSDL 文件保存到工作目录中,或者使用 URL 将 Apache Axis 工具包直接指向网络中的 WSDL 资源。现在,可以开始从 WSDL 文件生成 Java 存根。
从 WSDL 文件生成 Java 文件 WSDL2Java 函数可以把文件名作为参数,如下所示:
C:\java\consumer>wsd12java.bat MyWebservice.xml
或者以 WSDL 文件的完整的 Uniform Resource Indicator(URI)作为参数:
C:\java\consumer>wsd12java.bat http://localhost/mywebservice.nsf/MyWebService?WSDL
为了在本地工作,下载并使用名称 MyWebservice.xml 把 WSDL 文件保存到工作目录中,如第一个命令所示。 注意:我们工作使用的 Web 服务只是为了示范的目的(例如,没有使用名称空间)。所以,您现在在工作目录中看到一个名为 DefaultNamespace 的新目录。 wsdl2java.bat 的运行结果是生成五个 Java 文件: - DominoSoapBindingStub.java
- HelloWorld.java
- HelloWorldService.java
- HelloWorldServiceLocator.java
- MyComplexClass.java
在这五个文件中,只有两个是真正重要的:HelloWorld.java 和 MyComplexClass.java。其他三个用于执行调用和解析响应。如果您想学习更多关于 Apache Axis 框架的内容,建议您访问
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一页 1 23 4 下一页
上一篇:在R6中如何把所有外来的smtp邮件都自动地拷贝到一个数据库中 下一篇:没有了
|