编写一个Web service客户端
特性列表
wscompile 命令有很多可用的标志和特性,您可以通过使用-help标志来查看它们。与这里的讨论有着密切关系的是-gen (或-gen:client)、-d和-s。
[client]$ wscompile.sh
-verbose -gen -d classes
-s src -keep etc/config.xml
这个参数会生成大量的输出,详细描述为Web service生成的代码。wscompile工具生成源代码并将其编译为类。如果没有传递-keep标志,源代码就会丢失。这里有着大量的代码,但是我们只会对客户端使用其中的一小部分。
现在从命令行运行wscompile,同时传递-help标志(参见图2)。正如您看到的那样,有很多可用的标志和特性。现在我们关心的是-gen(或者-gen:client,二者是一样的);-d,告诉wscompile在哪里存放编译以后的文件;还有-s,是生成源代码的位置。您还可以使用-verbose,它让您知道wscompile正在做什么,以及-keep,它指定保存所生成的源文件。您还需要把配置文件作为一个参数传递给wscompile。
[client]$ wscompile.sh
-verbose -gen -d classes
-s src -keep etc/config.xml
这个参数会生成大量的输出,详细描述为Web service生成的代码。wscompile工具生成源代码并将其编译为类。如果没有传递-keep标志,源代码就会丢失。这里有着大量的代码,但是我们只会对客户端使用其中的一小部分。
WSDL文档包含一个服务元素。这个元素提供对Web service的较高级描述——实质上就是它的名称。(WSDL中)一个服务是端口的集合,而端口是对于如何调用服务的高级描述。特别地,端口包含Web service的地址。如果查看生成的类,您将看到两个文件:AmazonSearchService.java和AmazonSearchService_Impl.java。这两个文件分别是一个接口和一个实现类,代表了Amazon的WSLD中定义的服务。还有一个叫做AmazonSearchPort.java的接口,它对应于WSDL端口定义。如果查看Port接口,您将看到它包含Amazon Web service所能执行的所有操作的列表。桩类实现了这个服务接口。该桩叫做AmazonSearchPort_Stub.java,而且这是我们的客户端将会使用的类(参见清单1)。