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]); } }