CXF 动态客户端--复杂对象
发布时间:2020-12-16 23:12:25 所属栏目:安全 来源:网络整理
导读:大家都知道,CXF提供了两种创建客户端的方式:一种是使用cxf提供的wsdl2java命令生成客户端,另一种就是动态创建客户端。关于第一种方式,就是直接将远程提供的类信息在本地生成,原理很简单。关键是动态调用并且方法参数为复杂对象时,这种方式是通过动态加
大家都知道,CXF提供了两种创建客户端的方式:一种是使用cxf提供的wsdl2java命令生成客户端,另一种就是动态创建客户端。关于第一种方式,就是直接将远程提供的类信息在本地生成,原理很简单。关键是动态调用并且方法参数为复杂对象时,这种方式是通过动态加载(加载到内存,并且只在当前线程中有效)需要使用到的远程的类信息,来完成客户端的创建以及远程方法的调用,使用方式如下: 1、 首先创建动态客户端工厂: <span class="lnum" style="color: rgb(96,96,96);"> 1: </span>JaxWsDynamicClientFactory dynamicClient = JaxWsDynamicClientFactory.newInstance(); 2、创建客户端对象: 3、创建远程方法需要使用的对象参数,并为对象属性赋值: <span class="lnum" style="color: rgb(96,96);"> 1: </span>Object orderSplit = Thread.currentThread().getContextClassLoader() 2: .loadClass("com.jd.wmc.service.OrderSplit").newInstance();
4、调用远程方法: 注意:客户端的创建一定要保证和创建参数对象时在同一个线程,否则将抛出找不到类的异常。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |