package org.jeecg.modules.msi.utils;
|
|
|
import org.apache.cxf.endpoint.Client;
|
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
|
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
|
|
|
public class WebServiceUtil {
|
/**
|
* 1.代理类工厂的方式,需要拿到对方的接口地址, 同时需要引入接口
|
*/
|
public static void invokeService_1(String address, Class<?> tClass){
|
// 接口地址
|
//String address = "http://localhost:8080/services/ws/api?wsdl";
|
// 代理工厂
|
JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxWsProxyFactoryBean();
|
// 设置代理地址
|
jaxWsProxyFactoryBean.setAddress(address);
|
// 设置接口类型
|
jaxWsProxyFactoryBean.setServiceClass(tClass);
|
// 创建一个代理接口实现
|
Object us = jaxWsProxyFactoryBean.create();
|
// 数据准备
|
String data = "hello world";
|
// 调用代理接口的方法调用并返回结果
|
//String result = us.emrService(data);
|
//System.out.println("返回结果:" + result);
|
}
|
|
/**
|
* 3. 动态调用
|
*/
|
public static String invokeService(String uri, String data, String method)
|
{
|
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
|
Client client = dcf.createClient(uri);
|
Object[] objects = new Object[0];
|
try {
|
objects = client.invoke(method, data);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return String.valueOf(objects[0]);
|
}
|
|
/**
|
* 2. 动态调用
|
*/
|
public static String invokeServiceObJect(String uri,Object[] datas, String method)
|
{
|
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
|
Client client = dcf.createClient(uri);
|
Object[] objects = new Object[0];
|
try {
|
objects = client.invoke(method, datas);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return String.valueOf(objects[0]);
|
}
|
}
|