之前关于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客户端动态调用的流程。看看代码是不是很简单,明了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。