最近在和WebService打交道,因为对方用的是比较老的版本还是 Apache Axis version: 1.4 的。
因为我们的项目都是SpringBoot2的,对方的意思是需要我们根据xml生成对应的客户端代码,但是SpringBoot的话根本不需要生成代码,直接调用WebService接口 其实几行代码就可以搞定。
我这里的SpringBoot版本是2.0.3的对应的cxf依赖:
<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> <version>3.2.4</version> </dependency>
import com.alibaba.fastjson.JSONObject; import org.apache.cxf.endpoint.Client; import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; public class WsTest { public static void main(String[] args) { // 创建动态客户端 JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); Client client = dcf.createClient("http://域名/api/notify?wsdl"); Object[] objects = new Object[0]; try { //按照各自的文档传入参数 objects = client.invoke("ServiceName", "参数1", "参数2", "参数3", "参数4"); System.out.println("返回数据:" + JSONObject.toJSONString(objects[0]) ); } catch (java.lang.Exception e) { e.printStackTrace(); } } }
来源:oschina
链接:https://my.oschina.net/648885471/blog/4692202