加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

CXF客户端开发--动态调用webservice

发布时间:2020-12-16 23:10:13 所属栏目:安全 来源:网络整理
导读:之前关于webservice的文章中已经介绍了CXF JAX-WS proxy客户端模式。JAX-WS proxy模式需要在客户端使用wsdl2java生成代理接口,这种方式相对于动态调用,其效率相对较高。但是前期的工作量比较大,有时我们知道一个服务接口URL、方法名、入参schema、返回参

之前关于webservice的文章中已经介绍了CXF JAX-WS proxy客户端模式。JAX-WS proxy模式需要在客户端使用wsdl2java生成代理接口,这种方式相对于动态调用,其效率相对较高。但是前期的工作量比较大,有时我们知道一个服务接口URL、方法名、入参schema、返回参数schema,不想和jax-ws proxy模式那么繁琐的生成客户端代码,就需要使用动态调用。

动态调用的方式很简单,代码一般很简洁。需要使用一个动态客户端工厂类:JaxWsDynamicClientFactory,并有它创建某个接口的客户端。如下:

public class DynamicClient {

private final static String SERVICE_URL = "http://localhost:8080/services/xxtInter?wsdl";

public static void main(String[] args) throws Exeception{

JaxWsDynamicClientFactory FACTORY = JaxWsDynamicClientFactory.newInstance();//1,获取一个工厂实例

Client client = FACTORY.createClient(serviceURL);//2,生成针对指定服务接口URL的客户端

Object[] objs =?client.invoke("sayHi","hello world!");//3,调用指定的方法,注意入参第一个为方法名称,第二个为方法的参数(可以传入一个参数列表,一般为数组)
System.out.print(objs[0].toString());

}

}

到此,完成CXF客户端动态调用的流程。看看代码是不是很简单,明了。

不过在调用方法的步骤,需要注意,方法参数(针对复杂类型,如pojo,list等)的schema必须和服务端的一样。

关于动态调用传递复杂类型参数,将在后面文章中进行介绍。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读