上一张我们讲到 Spring Boot 开发 WebService 服务,本章研究基于 CXF 调用 WebService。另外本来想写一篇 xfire 作为 client 端来调用 webservice 的代码。后来发现 xfire 在2007 你那巅峰时刻,已经不再更新,而后来的 Spring 已经抛弃了部分 Api。导致现在已经不兼容了。

本项目源码 github 下载

1 新建 Spring Boot Maven 示例工程项目

注意:是用来 IDEA 开发工具

  1. File > New > Project,如下图选择 Spring Initializr 然后点击 【Next】下一步
  2. 填写 GroupId(包名)、Artifact(项目名) 即可。点击 下一步

    groupId=com.fishpro

    artifactId=webserviceclient
  3. 选择依赖 Spring Web Starter 前面打钩。
  4. 项目名设置为 spring-boot-study-webserviceclient.

2 引入依赖 Pom

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-spring-boot-starter-jaxws -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
<version>3.2.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

3 编写调用代码

  1. 实例化 JaxWsDynamicClientFactory
  2. 建立Client请求
  3. invoke方法入口,并传递参数

http://localhost:8080/ws/user?wsdl 为上一章我们编写的示例。


@SpringBootApplication
public class WebserviceclientApplication { public static void main(String[] args) {
SpringApplication.run(WebserviceclientApplication.class, args); JaxWsDynamicClientFactory dcflient=JaxWsDynamicClientFactory.newInstance(); Client client=dcflient.createClient("http://localhost:8080/ws/user?wsdl");
try{
Object[] objects=client.invoke("getUserById","1");
System.out.println("getUserById 调用结果:"+objects[0].toString()); Object[] objectall=client.invoke("getUsers");
System.out.println("getUsers调用部分结果:"+objectall[0].toString()); }catch (Exception e){
e.printStackTrace();
}
} }

右键 WebserviceclientApplication 点击 Run WebserviceclientApplication

2019-08-12 18:42:42.341  INFO 63593 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8087 (http) with context path ''
2019-08-12 18:42:42.344 INFO 63593 --- [ main] c.f.w.WebserviceclientApplication : Started WebserviceclientApplication in 2.527 seconds (JVM running for 3.132)
getUserById 调用结果:com.youdomain.webservice.UserDto@3c7d8a4
getUsers调用部分结果:[com.youdomain.webservice.UserDto@4e2824b1, com.youdomain.webservice.UserDto@534d0e20, com.youdomain.webservice.UserDto@7d18338b, com.youdomain.webservice.UserDto@3f4a605f]

本项目源码 github 下载

最新文章

  1. nyoj 71 独木舟上的旅行(贪心专题)
  2. python 自带的ide 不能保存文件
  3. c语言中三个点的解释 : variadic
  4. 4. Android框架和工具之 android-async-http
  5. (七)boost库之单例类
  6. 06-JavaScript的流控制语句
  7. supergridcontrol记录,分页
  8. saver.restore()遇到的错误
  9. python+selenium滑动式验证码解决办法
  10. 基于akka-http搭建restfull框架
  11. python接口自动化测试十五:解决密码动态,无法登录情况
  12. java构造函数使用方法总结 (继承与构造函数)
  13. Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》
  14. C# 创建精简版IIS
  15. JS判断页面加载完毕
  16. 常见企业IT支撑【6、跳板机Jumpserver】
  17. 【canvas系列】canvas实现“ 简单的Amaziograph效果”--画对称图【强迫症福利】
  18. 差分约束系统+输出路径(I - Advertisement POJ - 1752 )
  19. 【转】Internet连接正常但是没有网络,禁用以太网以后再重新启动就可以使用了,原因是什么?
  20. ZOJ 2532 Internship 求隔边

热门文章

  1. vmware Linux虚拟机挂载共享文件夹
  2. centos 7 pip install MySQL-python 报错
  3. ansible笔记(7):常用模块之包管理模块
  4. Navicat Preminm for Linx
  5. 问题总结:mysql和javaweb工程连接的过程中容易产生的问题
  6. Makefile export
  7. C++泛型算法总结
  8. 关于Excel,你一定用的到的36个Python函数
  9. instrrev 和instr 区别vb
  10. python如何用sqlalchemy操作数据库