(SpringCloud中的WebService)SpringBoot整合CXF——客户端

4 篇文章 0 订阅
4 篇文章 0 订阅


如果是要编写服务端代码,参见文章: 服务端

生成客户端代码

  1. 首先下载CXF的压缩包apache-cxf-3.3.3.zip ,然后直接解压就可以了。
  2. 配置环境变量
    首先,在环境变量中增加如下变量:
    在这里插入图片描述
    然后添加到Path变量中:
    在这里插入图片描述
  3. 生成客户端代码
wsdl2java -d F:\fyk-plat\fyk-business\fyk-business-ws\fyk-business-cxf\src\main\java -p com.boco.fyk.cxf.cxfclient.qqonline -encoding utf-8 http://ws.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl

这里,需要说明的是:

  • -p 指定其wsdl的命名空间,也就是要生成代码的包名:
  • -d 指定要产生代码所在目录
  • -client 生成客户端测试web service的代码
  • -server 生成服务器启动web service的代码
  • -impl 生成web service的实现代码
  • -ant 生成build.xml文件

在这个命令中,如果包名不存在,则会创建,如果已经存在,则沿用。当然,也可以加上-client参数,这样就会生成一些测试代码,这个在本文不使用,之后再来写这个测试代码。

如果出现错误的解决方式:
由于 accessExternalSchema 属性设置的限制而不允许 ‘file’ 访问, 因此无法读取方案文档 ‘xjc.xsd’


引入jar包

这里只给出了CXF先关的jar包,项目中的其他jar依赖略。

<!-- cxf start -->
<dependency>
	<groupId>org.apache.cxf</groupId>
	<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
	<version>${cxf-spring-boot-starter-jaxws.version}</version>
</dependency>
<dependency>
	<groupId>org.apache.cxf</groupId>
	<artifactId>cxf-rt-features-logging</artifactId>
	<version>3.3.1</version>
</dependency>
<!-- cxf end -->

调用服务

public String qqCheckOnline(String qqCode) throws Exception {
	QqOnlineWebService service = new QqOnlineWebService(new URL(getUrl()));
	QqOnlineWebServiceSoap qqOnlineWebServiceSoap = service.getQqOnlineWebServiceSoap();
	return qqOnlineWebServiceSoap.qqCheckOnline(qqCode);
}

这里,getUrl()方法返回的是一个字符串:

protected String getUrl() {
	return "http://ws.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl";
}

在实际之中,这里的值可以是来自配置文件、数据库等其他的方式,视情况而定。
另外,调用服务的方式,也有很多种,这里介绍的只是其中一种。只是我个人觉得比较适合当前的web项目罢了。

出入站报文获取

通常情况下,在调用接口的时候,都会把报文保存下来,方便后续查问题。报文的获取,可以参考这个文章:CXF获取出入站报文

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值