参考文章:
https://my.oschina.net/648885471/blog/4692202
拓展阅读:
https://zhuanlan.zhihu.com/p/139464954
https://zhuanlan.zhihu.com/p/139464464
tips:项目使用的springboot版本是2.2.5.RELEASE版本,此篇只展示简单的调用过程
一、添加依赖
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
<version>3.2.5</version>
</dependency>
二、接口调用过程
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
import javax.xml.namespace.QName;
/**
* <pre>
* webservice调用测试接口
* </pre>
*
* @author hoopy_y
* @since 2021/11/6
*/
public class TestWebSevice {
public static final String URL = "http://ip:port/xxx/XxxService?wsdl";
public static final String NAMESPACE_URL = "http://xxxxx/";
public static final String METHOD_NAME = "methodName";
public static final String PARAM_STR = "<data>xxx</data>";
public static void main(String[] args) {
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
// 创建动态客户端, URL -> 接口地址
Client client = dcf.createClient(URL);
// 创建QName, NAMESPACE_URL -> 命名空间,METHOD_NAME -> 方法名
QName qName = new QName(NAMESPACE_URL, METHOD_NAME);
try {
// 接口调用 PARAM_STR -> xml参数字符串
Object[] objects = client.invoke(qName, PARAM_STR);
// 返回的数据
System.out.println(objects[0].toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
拿到返回数据之后,对数据进行处理,转换成符合自己项目规范的数据即可。