【WebService】3.使用CXF开发WebService客户端
发布时间:2020-12-16 22:11:25 所属栏目:安全 来源:网络整理
导读:我们上一次使用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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |