加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 22:11:26 所属栏目:安全 来源:网络整理
导读:我们上一次使用CXF实现了简单的WebService的服务端,现在我们来实现客户端。 首先创建一个客户端的工程: 按照以下步骤开发: (1)调用CXF提供的wsdl2java工具,根据WSDL文档生成相应的java代码。 WSDL就是Web Service Definition Language,它描述了我们的WebS
我们上一次使用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://www.voidcn.com/article/p-vpivoyfa-bbb.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读