【WebService】3.使用CXF开发WebService客户端

来源:互联网 发布:淘宝足球 编辑:程序博客网 时间:2024/05/22 12:23
我们上一次使用CXF实现了简单的WebService的服务端,现在我们来实现客户端。

首先创建一个客户端的工程:

按照以下步骤开发:

(1)调用CXF提供的wsdl2java工具,根据WSDL文档生成相应的java代码。
WSDL就是Web Service Definition Language,它描述了我们的WebService有哪些操作可以调用。任何语言实现了WebService,都需要提供、并暴露WSDL文档。

我们回顾一下上一次我们输入服务端的服务路径后的结果:

这就是一些符合WSDL规范的语句。

我们用cmd控制台进入我们刚刚创建的工程下:

然后调用CXF提供的wsdl2java工具,去访问我们的服务(首先别忘了开启服务)。


我们可以看到我们的客户端下面生成了三个文件夹,我们回到MyEclipse下,可以看到我们的客户端下面生成了一些代码:


这些都是系统生成的,而且样子和我们的服务端的一些类很相似。这里我们先不管。

(2)找到wsdl2java所生成类中,继承了Service的类。

我们在生成的HelloworldWs.java中发现其继承了Service,该类的实例可以当成工厂来使用。

(3)调用Service子类的实例的getXxxPort方法,返回远程WebService的代理。
我们创建一个服务启动类:


我们编写里面的逻辑:
package show;import org.java.cxf.ws.HelloWorld;import org.java.cxf.ws.impl.HelloworldWs;public class ClientMain {    public static void main(String[] args) {        HelloworldWs factory=new HelloworldWs();        //此处返回的只是远程Web Service的代理        HelloWorld hw=factory.getHelloworldWsPort();        System.out.println(hw.sayHi("孙悟空"));    }}

运行之后(要先保证服务端开启)的效果:


我们并没有从服务端拷贝代码,但是我们运行之后就会得到服务端提供的sayHi的方法的效果。

为什么那么神奇呢?究竟发生了什么?请看下一篇总结。
转载请注明出处:http://blog.csdn.net/acmman/article/details/51691271
0 0