Spring Boot 使用 CXF 调用 WebService 服务
2024-08-30 14:00:46
上一张我们讲到 Spring Boot 开发 WebService 服务,本章研究基于 CXF 调用 WebService。另外本来想写一篇 xfire 作为 client 端来调用 webservice 的代码。后来发现 xfire 在2007 你那巅峰时刻,已经不再更新,而后来的 Spring 已经抛弃了部分 Api。导致现在已经不兼容了。
1 新建 Spring Boot Maven 示例工程项目
注意:是用来 IDEA 开发工具
- File > New > Project,如下图选择
Spring Initializr
然后点击 【Next】下一步 - 填写
GroupId
(包名)、Artifact
(项目名) 即可。点击 下一步
groupId=com.fishpro
artifactId=webserviceclient - 选择依赖
Spring Web Starter
前面打钩。 - 项目名设置为
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 编写调用代码
- 实例化 JaxWsDynamicClientFactory
- 建立Client请求
- 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]
最新文章
- nyoj 71 独木舟上的旅行(贪心专题)
- python 自带的ide 不能保存文件
- c语言中三个点的解释 : variadic
- 4. Android框架和工具之 android-async-http
- (七)boost库之单例类
- 06-JavaScript的流控制语句
- supergridcontrol记录,分页
- saver.restore()遇到的错误
- python+selenium滑动式验证码解决办法
- 基于akka-http搭建restfull框架
- python接口自动化测试十五:解决密码动态,无法登录情况
- java构造函数使用方法总结 (继承与构造函数)
- Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》
- C# 创建精简版IIS
- JS判断页面加载完毕
- 常见企业IT支撑【6、跳板机Jumpserver】
- 【canvas系列】canvas实现“ 简单的Amaziograph效果”--画对称图【强迫症福利】
- 差分约束系统+输出路径(I - Advertisement POJ - 1752 )
- 【转】Internet连接正常但是没有网络,禁用以太网以后再重新启动就可以使用了,原因是什么?
- ZOJ 2532 Internship 求隔边