Spring Boot 调用 WebService 的两种实现方式
在企业级系统开发中,Web Service 是一种常见的跨平台通信方式。尤其是在与旧系统对接时,我们经常需要通过 SOAP 协议调用远程 WebService 接口。
本文将详细介绍如何在 Spring Boot 项目中使用 Apache CXF 实现 WebService 的动态调用和静态调用,并附上完整的示例代码和操作步骤。
前提准备
动态调用和静态调用都需要使用以下 Maven 依赖。
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
<version>3.4.10</version>
</dependency>
使用 cxf-spring-boot-starter-jaxws 可以自动配置 CXF,无需额外 XML 配置。
方法一:动态调用 WebService
动态调用不依赖生成的 Java 类,直接通过 URL 和方法名调用,灵活性高,适合快速测试。
1. 添加依赖
同上节前提准备。
2. 调用示例代码
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
public class WebServiceDynamicClient {
public String[] callFuc1(String flag, String mac, String psw) {
try {
// 创建动态客户端
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client client = dcf.createClient("http://127.0.0.1/Service.asmx?wsdl");
// 调用方法,返回 Object[]
Object[] objects = client.invoke(, flag, mac, psw);
(objects != && objects.length > ) {
(String[]) objects[];
}
} (Exception e) {
e.printStackTrace();
}
;
}
}

