使用 CXF、Spring、Maven 创建一个 SOAP 客户端

上一篇文章我们介绍了使用 CXF 创建 SOAP Web服务,接下来我们来学习如何编写 SOAP 客户端。

使用 CXF 有很多种不同的方法来创建 SOAP 客户端,本文介绍一种最快速、最简单的方法。

首先从服务器上获取 wsdl 的 URL 地址。

打开 pom.xml 文件:

增加 wsdl-to-java 插件,该插件将根据 wsdl 生成对应调用服务的 Java 客户端代码。

01 <plugin>
02 <groupId>org.apache.cxf</groupId>
03 <artifactId>cxf-codegen-plugin</artifactId>
04 <version>${cxf.version}</version>
05 <executions>
06 <execution>
07 <id>generate-sources</id>
08 <phase>generate-sources</phase>
09 <configuration>
10 <sourceRoot>generated/cxf</sourceRoot>
11 <wsdlOptions>
12 <wsdlOption>
14 </wsdlOption>
15 </wsdlOptions>
16 </configuration>
17 <goals>
18 <goal>wsdl2java</goal>
19 </goals>
20 </execution>
21 </executions>
22 </plugin>

然后打开命令行窗口,并进入项目所在目录,执行:

1 mvn clean generate-sources

这将生成 wsdl 对应的客户端代码,代码存放于 <Project Folder>/generated/cxf 目录.

将该目录添加到项目的构建目录。

接下来我们写一个简单的类。

Application Context File:

01 <?xml  version="1.0" encoding="UTF-8"?>
15  
16 <!-- Start up bean which will invoke server webservice -->
17 <bean id="calculatorService" init-method="invoke">
18 <constructor-arg index="0"value="http://localhost:7009/cxf-spring-test/calculatorService?wsdl"/>
19 </bean>
20  
21 </beans>

Java 客户端类

01 package com.test;
02  
03 import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
04  
05 public class CalculatorServiceClient
06 {
07 private String targetURL;
08  
09 public CalculatorServiceClient(String targetURL)
10 {
11 this.targetURL = targetURL;
12 }
13  
14 public void invoke()
15 {
16 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
17 factory.setServiceClass(CalculatorIntf.class);
18  
19 factory.setAddress(this.targetURL);
20 CalculatorIntf calculatorIntf = (CalculatorIntf) factory.create();
21  
22 //invoking add web servcie
23 System.out.println("10 + 15 = "+calculatorIntf.add(1015));
24  
25 //invoking subtract web service
26 System.out.println("15 - 5 = "+calculatorIntf.subtract(155));
27  
28 //invoking multiply web service
29 System.out.println("10 * 5 = "+calculatorIntf.multiply(10,5));
30 }
31 }

源码打包下载: cxf_spring_maven.zip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值