JaxWsDynamicClientFactory动态调用客户端的webservice接口
通过JaxWsDynamicClientFactory进行WebService 客户端调用的一个好处就是只需要知道了WSDL地址就行了,不需要手动生成任何代码,这样,如果需要调用多个WebService服务的话,只需要创建多个Client即可,不用考虑传统方式(生成代码)冲突问题,这样可以让代码更优雅
1.引入cxf的jar包
2.
JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();
Client client = clientFactory.createClient(webserviceAddress);
Object[] result = null;
try {
//如果有命名空间的话
QName operationName = new QName(namespaceURI,localPort); //如果有命名空间需要加上这个,第一个参数为命名空间名称,第二个参数为WebService方法名称
result = client.invoke(operationName,param1, param2);//后面为WebService请求参数数组
//如果没有命名空间的话
result = client.invoke(operationName, param1); //注意第一个参数是字符串类型,表示WebService方法名称,第二个参数为请求参数
} catch (Exception e) {
String errMsg = "WebService发生异常!";
result = new Object[] { errMsg };
logger.error(errMsg, e);
}