CXF客户端开发--动态调用webservice
之前关于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,调用指定的方法,注意入参第一个为方法名称,第二个为方法的参数(可以传入一个参数列表,一般为数组) } } 到此,完成CXF客户端动态调用的流程。看看代码是不是很简单,明了。 不过在调用方法的步骤,需要注意,方法参数(针对复杂类型,如pojo,list等)的schema必须和服务端的一样。 关于动态调用传递复杂类型参数,将在后面文章中进行介绍。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |